3 types derived from DiagnosticOr
Microsoft.Interop.SourceGeneration (3)
DiagnosticOr.cs (3)
30
private sealed record Diag :
DiagnosticOr
<T>
40
private sealed record Val :
DiagnosticOr
<T>
50
private sealed record ValueAndDiagnostic :
DiagnosticOr
<T>
63 references to DiagnosticOr
Microsoft.Interop.ComInterfaceGenerator (60)
Analyzers\ComInterfaceGeneratorDiagnosticsAnalyzer.cs (9)
85
var interfaceInfoCache = new ConcurrentDictionary<INamedTypeSymbol,
DiagnosticOr
<(ComInterfaceInfo, INamedTypeSymbol)>>(SymbolEqualityComparer.Default);
118
ConcurrentDictionary<INamedTypeSymbol,
DiagnosticOr
<(ComInterfaceInfo, INamedTypeSymbol)>> interfaceInfoCache)
123
DiagnosticOr
<(ComInterfaceInfo, INamedTypeSymbol)> ciiResult = interfaceInfoCache.GetOrAdd(
144
ImmutableArray<
DiagnosticOr
<ComInterfaceContext>> contextResults = ComInterfaceContext.GetContexts(contextChain, ct);
148
DiagnosticOr
<ComInterfaceContext> thisContextResult = contextResults[contextResults.Length - 1];
157
foreach (
DiagnosticOr
<(ComMethodInfo ComMethod, IMethodSymbol Symbol)> methodResult in
216
ConcurrentDictionary<INamedTypeSymbol,
DiagnosticOr
<(ComInterfaceInfo, INamedTypeSymbol)>> interfaceInfoCache,
248
DiagnosticOr
<(ComInterfaceInfo, INamedTypeSymbol)> baseResult = interfaceInfoCache.GetOrAdd(
254
return
DiagnosticOr
<(ComInterfaceInfo, INamedTypeSymbol)>.From(
ComInterfaceContext.cs (14)
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)
48
if (nameToContextCache.TryGetValue(iface.ThisInterfaceKey, out
var
cachedValue))
55
var
baselessCtx =
DiagnosticOr
<ComInterfaceContext>.From(new ComInterfaceContext(iface, null, iface.Options) { IsExternallyDefined = iface.IsExternallyDefined });
60
DiagnosticOr
<ComInterfaceContext> baseReturnedValue;
63
(nameToContextCache.TryGetValue(iface.BaseInterfaceKey, out
var
baseCachedValue) && baseCachedValue.HasDiagnostic)
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 });
ComInterfaceGenerator.cs (3)
55
var
cii = ComInterfaceInfo.From(symbol, syntax, stubEnvironment, CancellationToken.None);
79
foreach (
var
m in cmi)
93
var
cic = comInterfaceContexts[i];
ComInterfaceInfo.cs (13)
14
using DiagnosticOrInterfaceInfo = Microsoft.Interop.
DiagnosticOr
<(Microsoft.Interop.ComInterfaceInfo InterfaceInfo, Microsoft.CodeAnalysis.INamedTypeSymbol Symbol)>;
56
public static
DiagnosticOrInterfaceInfo
From(INamedTypeSymbol symbol, InterfaceDeclarationSyntax syntax, StubEnvironment env, CancellationToken _)
59
return
DiagnosticOrInterfaceInfo
.From(DiagnosticInfo.Create(GeneratorDiagnostics.RequiresAllowUnsafeBlocks, syntax.Identifier.GetLocation()));
64
return
DiagnosticOrInterfaceInfo
.From(
72
return
DiagnosticOrInterfaceInfo
.From(partialContextDiagnostic);
76
return
DiagnosticOrInterfaceInfo
.From(DiagnosticInfo.Create(
84
return
DiagnosticOrInterfaceInfo
.From(guidDiagnostic);
87
return
DiagnosticOrInterfaceInfo
.From(baseDiagnostic);
93
return
DiagnosticOrInterfaceInfo
.From(stringMarshallingDiagnostic);
96
return
DiagnosticOrInterfaceInfo
.From(optionsDiagnostic);
99
return
DiagnosticOrInterfaceInfo
.From(exceptionToUnmanagedMarshallerDiagnostic);
138
return
DiagnosticOrInterfaceInfo
.From(info, nonFatalDiagnostics.ToArray());
142
return
DiagnosticOrInterfaceInfo
.From(info);
ComMethodInfo.cs (21)
61
public static SequenceEqualImmutableArray<
DiagnosticOr
<(ComMethodInfo ComMethod, IMethodSymbol Symbol)>> GetMethodsFromInterface((ComInterfaceInfo ifaceContext, INamedTypeSymbol ifaceSymbol) data, CancellationToken ct)
63
var methods = ImmutableArray.CreateBuilder<
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>>();
77
methods.Add(
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From(member.CreateDiagnosticInfo(GeneratorDiagnostics.InstanceEventDeclaredInInterface, member.Name, data.ifaceSymbol.ToDisplayString())));
139
ImmutableArray<
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>>.Builder methods,
159
methods.Add(
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From((
187
methods.Add(
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From(DiagnosticInfo.Create(GeneratorDiagnostics.MethodNotDeclaredInAttributedInterface, method.Locations.FirstOrDefault(), method.ToDisplayString())));
204
methods.Add(
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From(DiagnosticInfo.Create(GeneratorDiagnostics.CannotAnalyzeMethodPattern, method.Locations.FirstOrDefault(), method.ToDisplayString())));
211
methods.Add(
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From(diag!));
222
methods.Add(
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From((comMethodInfo, method)));
244
ImmutableArray<
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>>.Builder methods,
275
methods.Add(
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From(
295
methods.Add(
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From(
303
methods.Add(
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From(shapeDiagnostic!));
319
ImmutableArray<
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>>.Builder methods,
331
methods.Add(
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From((
346
ImmutableArray<
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>>.Builder methods,
356
methods.Add(
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From((
573
ImmutableArray<
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>>.Builder methods,
598
ImmutableArray<
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>>.Builder methods,
619
ImmutableArray<
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>>.Builder methods,
631
methods.Add(
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From(
Microsoft.Interop.SourceGeneration (3)
DiagnosticOr.cs (3)
64
public static
DiagnosticOr
<T> From(DiagnosticInfo diagnostic)
72
public static
DiagnosticOr
<T> From(T value)
81
public static
DiagnosticOr
<T> From(T value, params DiagnosticInfo[] diagnostics)