public void InstantiateSimpleGenericInstanceType() { var signature = new GenericInstanceTypeSignature(_dummyGenericType, false, new GenericParameterSignature(GenericParameterType.Type, 0)); var context = new GenericContext(GetProvider(_module.CorLibTypeFactory.String), null); var newSignature = signature.InstantiateGenericTypes(context); Assert.Equal(new GenericInstanceTypeSignature(_dummyGenericType, false, _module.CorLibTypeFactory.String), newSignature, Comparer); }
public void GenericType(GenericParameterType[] parameterTypes, int[] parameterIndices) { // Tuple<!0, !1, !2> var genericInstance = new GenericInstanceTypeSignature(_importer.ImportType(typeof(Tuple <, ,>)), new GenericParameterSignature(parameterTypes[0], parameterIndices[0]), new GenericParameterSignature(parameterTypes[1], parameterIndices[1]), new GenericParameterSignature(parameterTypes[2], parameterIndices[2]) ); Assert.Equal(new GenericInstanceTypeSignature(_importer.ImportType(typeof(Tuple <, ,>)), GetTypeArguments(parameterTypes[0])[parameterIndices[0]], GetTypeArguments(parameterTypes[1])[parameterIndices[1]], GetTypeArguments(parameterTypes[2])[parameterIndices[2]] ), genericInstance.InstantiateGenericTypes(_context), Comparer); }
public void InstantiateSimpleGenericInstanceType() { var genericType = new TypeReference( new AssemblyReference("SomeAssembly", new Version()), "SomeNamespace", "SomeType"); var signature = new GenericInstanceTypeSignature(genericType, false, new GenericParameterSignature(GenericParameterType.Type, 0)); var context = new GenericContext(GetProvider(_module.CorLibTypeFactory.String), null); var newSignature = signature.InstantiateGenericTypes(context); Assert.Equal(new GenericInstanceTypeSignature(genericType, false, _module.CorLibTypeFactory.String), newSignature, Comparer); }
public void InstantiateGenericInstanceTypeWithTypeAndMethodArgument() { var signature = new GenericInstanceTypeSignature(_dummyGenericType, false, new GenericParameterSignature(GenericParameterType.Type, 0), new GenericParameterSignature(GenericParameterType.Method, 0)); var context = new GenericContext( GetProvider(_module.CorLibTypeFactory.String), GetProvider(_module.CorLibTypeFactory.Int32)); var newSignature = signature.InstantiateGenericTypes(context); Assert.Equal(new GenericInstanceTypeSignature(_dummyGenericType, false, _module.CorLibTypeFactory.String, _module.CorLibTypeFactory.Int32), newSignature, Comparer); }
public void NestedGenericTypes(GenericParameterType[] parameterTypes, int[] parameterIndices) { // Tuple<0!, List<!0>, Dictionary<!0, !1>> var genericInstance = new GenericInstanceTypeSignature(_importer.ImportType(typeof(Tuple <, ,>)), new GenericParameterSignature(parameterTypes[0], parameterIndices[0]), new GenericInstanceTypeSignature(_importer.ImportType(typeof(List <>)), new GenericParameterSignature(parameterTypes[1], parameterIndices[1])), new GenericInstanceTypeSignature(_importer.ImportType(typeof(Dictionary <,>)), new GenericParameterSignature(parameterTypes[2], parameterIndices[2]), new GenericParameterSignature(parameterTypes[3], parameterIndices[3])) ); Assert.Equal(new GenericInstanceTypeSignature(_importer.ImportType(typeof(Tuple <, ,>)), GetTypeArguments(parameterTypes[0])[parameterIndices[0]], new GenericInstanceTypeSignature(_importer.ImportType(typeof(List <>)), GetTypeArguments(parameterTypes[1])[parameterIndices[1]]), new GenericInstanceTypeSignature(_importer.ImportType(typeof(Dictionary <,>)), GetTypeArguments(parameterTypes[2])[parameterIndices[2]], GetTypeArguments(parameterTypes[3])[parameterIndices[3]]) ), genericInstance.InstantiateGenericTypes(_context), Comparer); }