/// <summary> /// Resolve all generic parameters in the given type in the given context. /// </summary> internal static bool TryResolve(NetTypeReference type, INetGenericParameterProvider context, TypeNameMap typeNameMap, out NetTypeReference result) { result = null; if (type == null) { return(false); } if (context == null) { throw new ArgumentNullException("context"); } result = type.Accept(new Resolver(context, typeNameMap), 0); return(result != null); }
/// <summary> /// Resolve all generic parameters in the given type in the given context. /// </summary> internal static NetTypeReference Resolve(NetTypeReference type, INetGenericParameterProvider context, TypeNameMap typeNameMap) { if (type == null) { return(null); } NetTypeReference result; if (!TryResolve(type, context, typeNameMap, out result)) { throw new ArgumentException(string.Format("Cannot resolve {0} in context of {1}", type, context)); } return(result); }
public ResolveData(NetTypeImplementationBuilder builder, IGenericContext genericContext, INetGenericParameterProvider genericParameterProvider) { Builder = builder; GenericContext = genericContext; GenericParameterProvider = genericParameterProvider; }
/// <summary> /// Resolve the given type to a NetTypeReference. /// </summary> private NetTypeReference Resolve(TypeReference type, IGenericContext context, INetGenericParameterProvider provider) { return(type.Accept(ResolveVisitor.Instance, new ResolveData(this, context, provider))); }
/// <summary> /// Default ctor /// </summary> public Resolver(INetGenericParameterProvider context, TypeNameMap typeNameMap) { this.context = context; this.typeNameMap = typeNameMap; }
/// <summary> /// Default ctor /// </summary> public NetGenericParameter(string name, string originalName, INetGenericParameterProvider owner) { Name = name; this.originalName = originalName; this.owner = owner; }