예제 #1
0
        public INamedTypeSymbol ResolveType(QualifiedName name)
        {
            Debug.Assert(!name.IsReservedClassName);
            Debug.Assert(!name.IsEmpty());

            return
                (ExportedTypes.TryGetOrDefault(name) ??
                 GetTypeFromNonExtensionAssemblies(name.ClrName()) ??
                 _next.ResolveType(name));
        }
예제 #2
0
        public INamedTypeSymbol ResolveType(QualifiedName name, Dictionary <QualifiedName, INamedTypeSymbol> resolved = null)
        {
            Debug.Assert(!name.IsReservedClassName);
            Debug.Assert(!name.IsEmpty());

            if (resolved != null && resolved.TryGetValue(name, out var type))
            {
                return(type);
            }

            return
                (ExportedTypes.TryGetOrDefault(name) ??
                 GetTypeFromNonExtensionAssemblies(name.ClrName()) ??
                 _next.ResolveType(name, resolved));
        }