public void AddTypeDef3() { NativeSymbolBag bag = new NativeSymbolBag(); NativeTypeDef td1 = new NativeTypeDef("td1"); NativeTypeDef td2 = new NativeTypeDef("td1"); bag.AddTypeDef(td1); Assert.Throws <ArgumentException>(() => bag.AddTypeDef(td2)); }
public CodeTypeDeclarationCollection ConvertToCodeDom(NativeTypeDef typedef, ErrorProvider ep) { NativeSymbolBag bag = new NativeSymbolBag(_storage); bag.AddTypeDef(typedef); return(ConvertBagToCodeDom(bag, ep)); }
public void AddTypeDef2() { NativeSymbolBag bag = new NativeSymbolBag(); NativeTypeDef td1 = new NativeTypeDef("td1"); NativeTypeDef td2 = new NativeTypeDef("td2"); bag.AddTypeDef(td1); bag.AddTypeDef(td2); NativeType ret1 = null; NativeType ret2 = null; Assert.True(bag.TryGetType(td1.DisplayName, out ret1)); Assert.Same(ret1, td1); Assert.True(bag.TryGetType(td2.DisplayName, out ret2)); Assert.Same(ret2, td2); }
public void Opaque2() { NativeNamedType named = new NativeNamedType("foo"); NativePointer ptr = new NativePointer(named); NativeTypeDef td = new NativeTypeDef("FOOBAR", ptr); NativeSymbolBag bag = new NativeSymbolBag(); bag.AddTypeDef(td); Assert.Equal(1, bag.FindUnresolvedNativeSymbolRelationships().Count); Assert.False(bag.TryResolveSymbolsAndValues()); }
public void FindOrLoad5() { NativeSymbolBag bag = new NativeSymbolBag(); bag.AddTypeDef(new NativeTypeDef("foo", new NativeNamedType("struct", "foo"))); bag.AddDefinedType(new NativeStruct("foo")); NativeType nt = null; Assert.True(bag.TryResolveNamedType(new NativeNamedType("struct", "foo"), out nt)); Assert.Equal(NativeSymbolKind.StructType, nt.Kind); }
public void Opaque1() { NativeNamedType named = new NativeNamedType("struct", "foo"); NativePointer ptr = new NativePointer(named); NativeTypeDef td = new NativeTypeDef("FOOBAR", ptr); NativeSymbolBag bag = new NativeSymbolBag(); bag.AddTypeDef(td); Assert.Equal(1, bag.FindUnresolvedNativeSymbolRelationships().Count); Assert.True(bag.TryResolveSymbolsAndValues()); Assert.NotNull(named.RealType); Assert.Equal(NativeSymbolKind.OpaqueType, named.RealType.Kind); }
public void Proc6() { NativeSymbolBag bag = new NativeSymbolBag(); NativeProcedure p1 = new NativeProcedure("p1"); p1.Signature.ReturnType = new NativeBuiltinType(BuiltinType.NativeInt32, true); p1.Signature.Parameters.Add(new NativeParameter("param1", new NativeNamedType("foo"))); bag.AddProcedure(p1); bag.AddTypeDef(new NativeTypeDef("foo", new NativeBuiltinType(BuiltinType.NativeFloat))); Assert.True(bag.TryResolveSymbolsAndValues()); }
public void ResolveLoad1() { var ns = new BasicSymbolStorage(); ns.AddDefinedType(new NativeStruct("s1")); NativeSymbolBag bag = new NativeSymbolBag(ns); bag.AddTypeDef(new NativeTypeDef("S1", "s1")); Assert.True(bag.TryResolveSymbolsAndValues()); NativeDefinedType td = null; Assert.True(bag.TryGetGlobalSymbol("s1", out td)); }
public void Resolve1() { NativeSymbolBag bag = new NativeSymbolBag(); NativeStruct s1 = new NativeStruct("s1"); bag.AddDefinedType(s1); NativeTypeDef td1 = new NativeTypeDef("td1"); NativeNamedType n1 = new NativeNamedType("s1"); td1.RealType = n1; bag.AddTypeDef(td1); Assert.True(bag.TryResolveSymbolsAndValues()); Assert.Same(s1, n1.RealType); }
public void AddMixed2() { NativeSymbolBag bag = new NativeSymbolBag(); NativeStruct definedNt1 = new NativeStruct("s1"); bag.AddDefinedType(definedNt1); NativeTypeDef td1 = new NativeTypeDef("s1"); bag.AddTypeDef(td1); NativeType ret = null; Assert.True(bag.TryGetType(definedNt1.DisplayName, out ret)); Assert.Same(definedNt1, ret); Assert.True(bag.TryGetType(td1.DisplayName, out ret)); Assert.Same(definedNt1, ret); }
private void VerifyReachable(NativeType nt, params string[] names) { NativeSymbolBag bag = new NativeSymbolBag(); NativeDefinedType definedNt = nt as NativeDefinedType; NativeTypeDef typedefNt = nt as NativeTypeDef; if (definedNt != null) { bag.AddDefinedType((NativeDefinedType)nt); } else if (typedefNt != null) { bag.AddTypeDef((NativeTypeDef)nt); } else { throw new Exception("Not a searchable type"); } VerifyReachable(bag, names); }