2 instantiations of ComInterfaceContext
Microsoft.Interop.ComInterfaceGenerator (2)
ComInterfaceContext.cs (2)
55
var baselessCtx = DiagnosticOr<ComInterfaceContext>.From(new
ComInterfaceContext
(iface, null, iface.Options) { IsExternallyDefined = iface.IsExternallyDefined });
79
var ctx = DiagnosticOr<ComInterfaceContext>.From(new
ComInterfaceContext
(iface, baseContext.Value, iface.Options) { IsExternallyDefined = iface.IsExternallyDefined });
36 references to ComInterfaceContext
Microsoft.Interop.ComInterfaceGenerator (36)
Analyzers\ComInterfaceGeneratorDiagnosticsAnalyzer.cs (4)
140
ImmutableArray<DiagnosticOr<
ComInterfaceContext
>> contextResults =
ComInterfaceContext
.GetContexts(contextChain, ct);
144
DiagnosticOr<
ComInterfaceContext
> thisContextResult = contextResults[contextResults.Length - 1];
204
/// <see cref="
ComInterfaceContext
.GetContexts"/> will emit <see cref="GeneratorDiagnostics.BaseInterfaceIsNotGenerated"/>
ComInterfaceAndMethodsContext.cs (1)
13
internal sealed record ComInterfaceAndMethodsContext(
ComInterfaceContext
Interface, SequenceEqualImmutableArray<ComMethodContext> Methods)
ComInterfaceContext.cs (13)
16
internal
ComInterfaceContext
? Base { get; init; }
20
private ComInterfaceContext(ComInterfaceInfo info,
ComInterfaceContext
? @base, ComInterfaceOptions options)
30
public static ImmutableArray<DiagnosticOr<
ComInterfaceContext
>> GetContexts(ImmutableArray<ComInterfaceInfo> data, CancellationToken _)
33
var accumulator = ImmutableArray.CreateBuilder<DiagnosticOr<
ComInterfaceContext
>>(data.Length);
38
Dictionary<string, DiagnosticOr<
ComInterfaceContext
>> nameToContextCache = new();
46
DiagnosticOr<
ComInterfaceContext
> AddContext(ComInterfaceInfo iface)
55
var baselessCtx = DiagnosticOr<
ComInterfaceContext
>.From(new ComInterfaceContext(iface, null, iface.Options) { IsExternallyDefined = iface.IsExternallyDefined });
60
DiagnosticOr<
ComInterfaceContext
> baseReturnedValue;
70
var diagnostic = DiagnosticOr<
ComInterfaceContext
>.From(
77
DiagnosticOr<
ComInterfaceContext
> baseContext = baseCachedValue ?? baseReturnedValue;
79
var ctx = DiagnosticOr<
ComInterfaceContext
>.From(new ComInterfaceContext(iface, baseContext.Value, iface.Options) { IsExternallyDefined = iface.IsExternallyDefined });
85
internal
ComInterfaceContext
GetTopLevelBase()
87
var
currBase = Base;
ComInterfaceGenerator.cs (6)
45
InterfaceContexts: ImmutableArray<
ComInterfaceContext
>.Empty.ToSequenceEqual(),
69
var comInterfaceContexts =
ComInterfaceContext
.GetContexts(interfaceInfos.Select(i => i.Item1).ToImmutableArray(), ct);
89
List<(
ComInterfaceContext
, SequenceEqualImmutableArray<ComMethodInfo>)> ifaceCtxs = new();
134
ComInterfaceContext
interfaceContext = data.Interface;
403
private static ImmutableArray<ComInterfaceAndMethodsContext> GroupComContextsForInterfaceGeneration(ImmutableArray<ComMethodContext> methods, ImmutableArray<
ComInterfaceContext
> interfaces, CancellationToken ct)
426
foreach (
var
iface in interfaces)
ComMethodContext.cs (12)
28
public sealed record Builder(
ComInterfaceContext
OriginalDeclaringInterface, ComMethodInfo MethodInfo, int Index);
34
ComInterfaceContext
OriginalDeclaringInterface,
35
ComInterfaceContext
OwningInterface,
47
public ComMethodContext(Builder builder,
ComInterfaceContext
owningInterface, IncrementalMethodStubGenerationContext? generationContext)
58
public
ComInterfaceContext
OriginalDeclaringInterface => _state.OriginalDeclaringInterface;
60
public
ComInterfaceContext
OwningInterface => _state.OwningInterface;
116
public static List<(
ComInterfaceContext
OwningInterface, Builder Method)> CalculateAllMethods(IEnumerable<(
ComInterfaceContext
, SequenceEqualImmutableArray<ComMethodInfo>)> ifaceAndDeclaredMethods, CancellationToken _)
123
var allMethodsCache = new Dictionary<
ComInterfaceContext
, ImmutableArray<Builder>>();
124
var accumulator = new List<(
ComInterfaceContext
OwningInterface, Builder Method)>();
138
ImmutableArray<Builder> AddMethods(
ComInterfaceContext
iface, IEnumerable<ComMethodInfo> declaredMethods)
150
var
baseComIface = iface.Base;