2 instantiations of ComInterfaceInfo
Microsoft.Interop.ComInterfaceGenerator (2)
ComInterfaceInfo.cs (2)
102new ComInterfaceInfo( 161new ComInterfaceInfo(
43 references to ComInterfaceInfo
Microsoft.Interop.ComInterfaceGenerator (43)
Analyzers\ComInterfaceGeneratorDiagnosticsAnalyzer.cs (17)
81var interfaceInfoCache = new ConcurrentDictionary<INamedTypeSymbol, DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)>>(SymbolEqualityComparer.Default); 114ConcurrentDictionary<INamedTypeSymbol, DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)>> interfaceInfoCache) 119DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)> ciiResult = interfaceInfoCache.GetOrAdd( 120typeSymbol, _ => ComInterfaceInfo.From(typeSymbol, ifaceSyntax, env, ct)); 132(ComInterfaceInfo cii, INamedTypeSymbol _) = ciiResult.Value; 137ImmutableArray<ComInterfaceInfo> contextChain = BuildContextChain( 207private static ImmutableArray<ComInterfaceInfo> BuildContextChain( 209ComInterfaceInfo cii, 212ConcurrentDictionary<INamedTypeSymbol, DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)>> interfaceInfoCache, 217ImmutableArray<(ComInterfaceInfo, INamedTypeSymbol)> externalBases = 218ComInterfaceInfo.CreateInterfaceInfoForBaseInterfacesInOtherCompilations(typeSymbol); 225var ancestorChain = new List<ComInterfaceInfo>(); 237ImmutableArray<(ComInterfaceInfo, INamedTypeSymbol)> externalInfos = 238ComInterfaceInfo.CreateInterfaceInfoForBaseInterfacesInOtherCompilations(current); 244DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)> baseResult = interfaceInfoCache.GetOrAdd( 250return DiagnosticOr<(ComInterfaceInfo, INamedTypeSymbol)>.From( 252return ComInterfaceInfo.From(sym, baseSyntax, env, ct);
ComInterfaceContext.cs (8)
15internal ComInterfaceInfo Info { get; init; } 20private ComInterfaceContext(ComInterfaceInfo info, ComInterfaceContext? @base, ComInterfaceOptions options) 30public static ImmutableArray<DiagnosticOr<ComInterfaceContext>> GetContexts(ImmutableArray<ComInterfaceInfo> data, CancellationToken _) 32Dictionary<string, ComInterfaceInfo> nameToInterfaceInfoMap = new(); 34foreach (var iface in data) 40foreach (var iface in data) 46DiagnosticOr<ComInterfaceContext> AddContext(ComInterfaceInfo iface) 65|| !nameToInterfaceInfoMap.TryGetValue(iface.BaseInterfaceKey, out var baseInfo)
ComInterfaceGenerator.cs (9)
64List<(ComInterfaceInfo, INamedTypeSymbol)> interfaceInfos = new(); 65HashSet<(ComInterfaceInfo, INamedTypeSymbol)> externalIfaces = new(ComInterfaceInfo.EqualityComparerForExternalIfaces.Instance); 68var cii = ComInterfaceInfo.From(symbol, syntax, stubEnvironment, CancellationToken.None); 71var externalBase = ComInterfaceInfo.CreateInterfaceInfoForBaseInterfacesInOtherCompilations(symbol); 227private static MemberDeclarationSyntax GenerateIUnknownDerivedAttributeApplication(ComInterfaceInfo context, CancellationToken _) 249ComInterfaceInfo owningInterfaceInfo, 416internal static IncrementalMethodStubGenerationContext CalculateStubInformation(MethodDeclarationSyntax? syntax, IMethodSymbol symbol, int index, StubEnvironment environment, ComInterfaceInfo owningInterface, CancellationToken ct) 836private static ClassDeclarationSyntax GenerateInterfaceInformation(ComInterfaceInfo context, CancellationToken _)
ComInterfaceInfo.cs (7)
13using InterfaceInfo = (Microsoft.Interop.ComInterfaceInfo InterfaceInfo, Microsoft.CodeAnalysis.INamedTypeSymbol Symbol); 14using DiagnosticOrInterfaceInfo = Microsoft.Interop.DiagnosticOr<(Microsoft.Interop.ComInterfaceInfo InterfaceInfo, Microsoft.CodeAnalysis.INamedTypeSymbol Symbol)>; 180internal sealed class EqualityComparerForExternalIfaces : IEqualityComparer<(ComInterfaceInfo InterfaceInfo, INamedTypeSymbol Symbol)> 182public bool Equals((ComInterfaceInfo, INamedTypeSymbol) x, (ComInterfaceInfo, INamedTypeSymbol) y) => SymbolEqualityComparer.Default.Equals(x.Item2, y.Item2); 183public int GetHashCode((ComInterfaceInfo, INamedTypeSymbol) obj) => SymbolEqualityComparer.Default.GetHashCode(obj.Item2); 406public bool Equals(ComInterfaceInfo other)
ComMethodInfo.cs (2)
40public static SequenceEqualImmutableArray<DiagnosticOr<(ComMethodInfo ComMethod, IMethodSymbol Symbol)>> GetMethodsFromInterface((ComInterfaceInfo ifaceContext, INamedTypeSymbol ifaceSymbol) data, CancellationToken ct) 86private static DiagnosticOr<(ComMethodInfo, IMethodSymbol)> CalculateMethodInfo(ComInterfaceInfo ifaceContext, IMethodSymbol method, CancellationToken ct)