3 types derived from DiagnosticOr
Microsoft.Interop.SourceGeneration (3)
DiagnosticOr.cs (3)
33
private sealed record Diag :
DiagnosticOr
<T>
43
private sealed record Val :
DiagnosticOr
<T>
53
private sealed record ValueAndDiagnostic :
DiagnosticOr
<T>
50 references to DiagnosticOr
Microsoft.Interop.ComInterfaceGenerator (45)
ComClassInfo.cs (5)
26
public static
DiagnosticOr
<ComClassInfo> From(INamedTypeSymbol type, ClassDeclarationSyntax syntax, bool unsafeCodeIsEnabled)
30
return
DiagnosticOr
<ComClassInfo>.From(DiagnosticInfo.Create(GeneratorDiagnostics.RequiresAllowUnsafeBlocks, syntax.Identifier.GetLocation()));
35
return
DiagnosticOr
<ComClassInfo>.From(
58
return
DiagnosticOr
<ComClassInfo>.From(DiagnosticInfo.Create(GeneratorDiagnostics.ClassDoesNotImplementAnyGeneratedComInterface,
63
return
DiagnosticOr
<ComClassInfo>.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)
70
var
cii = ComInterfaceInfo.From(symbol, syntax, stubEnvironment, CancellationToken.None);
99
foreach (
var
m in cmi)
120
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 (10)
40
public static SequenceEqualImmutableArray<
DiagnosticOr
<(ComMethodInfo ComMethod, IMethodSymbol Symbol)>> GetMethodsFromInterface((ComInterfaceInfo ifaceContext, INamedTypeSymbol ifaceSymbol) data, CancellationToken ct)
42
var methods = ImmutableArray.CreateBuilder<
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>>();
53
methods.Add(
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From(member.CreateDiagnosticInfo(GeneratorDiagnostics.InstancePropertyDeclaredInInterface, member.Name, data.ifaceSymbol.ToDisplayString())));
56
methods.Add(
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From(member.CreateDiagnosticInfo(GeneratorDiagnostics.InstanceEventDeclaredInInterface, member.Name, data.ifaceSymbol.ToDisplayString())));
86
private static
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)> CalculateMethodInfo(ComInterfaceInfo ifaceContext, IMethodSymbol method, CancellationToken ct)
96
return
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From((
119
return
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From(DiagnosticInfo.Create(GeneratorDiagnostics.MethodNotDeclaredInAttributedInterface, method.Locations.FirstOrDefault(), method.ToDisplayString()));
135
return
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From(DiagnosticInfo.Create(GeneratorDiagnostics.CannotAnalyzeMethodPattern, method.Locations.FirstOrDefault(), method.ToDisplayString()));
141
return
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From(diag);
153
return
DiagnosticOr
<(ComMethodInfo, IMethodSymbol)>.From((comMethodInfo, method));
Microsoft.Interop.SourceGeneration (5)
DiagnosticOr.cs (5)
67
public static
DiagnosticOr
<T> From(DiagnosticInfo diagnostic)
75
public static
DiagnosticOr
<T> From(T value)
84
public static
DiagnosticOr
<T> From(T value, params DiagnosticInfo[] diagnostics)
97
public static (IncrementalValuesProvider<T>, IncrementalValuesProvider<DiagnosticInfo>) Split<T>(this IncrementalValuesProvider<
DiagnosticOr
<T>> provider)
107
public static IncrementalValuesProvider<T> FilterAndReportDiagnostics<T>(this IncrementalGeneratorInitializationContext ctx, IncrementalValuesProvider<
DiagnosticOr
<T>> diagnosticOrValues)