public INamedTypeSymbol ResolveType(QualifiedName name) { Debug.Assert(!name.IsReservedClassName); Debug.Assert(!name.IsEmpty()); return (ExportedTypes.TryGetOrDefault(name) ?? GetTypeFromNonExtensionAssemblies(name.ClrName()) ?? _next.ResolveType(name)); }
/// <summary> /// Compares two qualified names. /// </summary> /// <remarks> /// The original comparison operator on <see cref="QualifiedName"/> fails when any of the comparands is not initialized. /// </remarks> public static bool NameEquals(this QualifiedName name1, QualifiedName name2) { bool name1Empty = name1.IsEmpty(); bool name2Empty = name2.IsEmpty(); if (name1Empty || name2Empty) { return(name1Empty && name2Empty); } return(name1 == name2); }
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)); }