3 instantiations of DiagnosticInfo
Microsoft.Interop.SourceGeneration (3)
DiagnosticInfo.cs (3)
28
return new
DiagnosticInfo
()
40
return new
DiagnosticInfo
()
52
return new
DiagnosticInfo
()
136 references to DiagnosticInfo
Microsoft.Interop.ComInterfaceGenerator (67)
Analyzers\ComInterfaceGeneratorDiagnosticsAnalyzer.cs (9)
125
foreach (
DiagnosticInfo
diag in ciiResult.Diagnostics)
147
foreach (
DiagnosticInfo
diag in thisContextResult.Diagnostics)
158
foreach (
DiagnosticInfo
diag in methodResult.Diagnostics)
183
ImmutableArray<
DiagnosticInfo
> managedToNativeDiags = ImmutableArray<
DiagnosticInfo
>.Empty;
184
ImmutableArray<
DiagnosticInfo
> nativeToManagedDiags = ImmutableArray<
DiagnosticInfo
>.Empty;
196
foreach (
DiagnosticInfo
diag in managedToNativeDiags.Union(nativeToManagedDiags))
251
DiagnosticInfo
.Create(GeneratorDiagnostics.CannotAnalyzeInterfacePattern, sym.Locations.FirstOrDefault() ?? Location.None, sym.Name));
Analyzers\VtableIndexStubDiagnosticsAnalyzer.cs (8)
83
DiagnosticInfo
? invalidMethodDiagnostic = GetDiagnosticIfInvalidMethodForGeneration(methodSyntax, method);
95
foreach (
DiagnosticInfo
diag in diagnostics)
102
foreach (
DiagnosticInfo
diag in diagnostics)
107
internal static
DiagnosticInfo
? GetDiagnosticIfInvalidMethodForGeneration(MethodDeclarationSyntax methodSyntax, IMethodSymbol method)
116
return
DiagnosticInfo
.Create(GeneratorDiagnostics.InvalidAttributedMethodSignature, methodSyntax.Identifier.GetLocation(), method.Name);
124
return
DiagnosticInfo
.Create(GeneratorDiagnostics.InvalidAttributedMethodContainingTypeMissingModifiers, methodSyntax.Identifier.GetLocation(), method.Name, typeDecl.Identifier);
131
return
DiagnosticInfo
.Create(GeneratorDiagnostics.ReturnConfigurationNotSupported, methodSyntax.Identifier.GetLocation(), "ref return", method.ToDisplayString());
137
return
DiagnosticInfo
.Create(GeneratorDiagnostics.InvalidAttributedMethodContainingTypeMissingUnmanagedObjectUnwrapperAttribute, methodSyntax.Identifier.GetLocation(), method.Name);
ComInterfaceContext.cs (1)
71
DiagnosticInfo
.Create(
ComInterfaceGenerator.cs (2)
322
generatorDiagnostics.ReportDiagnostic(
DiagnosticInfo
.Create(GeneratorDiagnostics.ComMethodManagedReturnWillBeOutVariable, symbol.Locations[0]));
358
generatorDiagnostics.ReportDiagnostic(
DiagnosticInfo
.Create(
ComInterfaceInfo.cs (29)
59
return DiagnosticOrInterfaceInfo.From(
DiagnosticInfo
.Create(GeneratorDiagnostics.RequiresAllowUnsafeBlocks, syntax.Identifier.GetLocation()));
65
DiagnosticInfo
.Create(
71
if (!IsInPartialContext(symbol, syntax, out
DiagnosticInfo
? partialContextDiagnostic))
76
return DiagnosticOrInterfaceInfo.From(
DiagnosticInfo
.Create(
83
if (!TryGetGuid(symbol, syntax, out Guid? guid, out
DiagnosticInfo
? guidDiagnostic))
86
if (!TryGetBaseComInterface(symbol, syntax, out INamedTypeSymbol? baseSymbol, out
DiagnosticInfo
? baseDiagnostic))
92
if (!StringMarshallingIsValid(symbol, syntax, interfaceAttributeData, baseAttributeData, out
DiagnosticInfo
? stringMarshallingDiagnostic))
95
if (!OptionsAreValid(symbol, syntax, interfaceAttributeData, baseAttributeData, out
DiagnosticInfo
? optionsDiagnostic))
98
if (!ExceptionToUnmanagedMarshallerIsValid(syntax, interfaceAttributeData, out
DiagnosticInfo
? exceptionToUnmanagedMarshallerDiagnostic))
116
ImmutableArray<
DiagnosticInfo
>.Builder nonFatalDiagnostics = ImmutableArray.CreateBuilder<
DiagnosticInfo
>();
128
nonFatalDiagnostics.Add(
DiagnosticInfo
.Create(
187
private static bool IsInPartialContext(INamedTypeSymbol symbol, InterfaceDeclarationSyntax syntax, [NotNullWhen(false)] out
DiagnosticInfo
? diagnostic)
192
diagnostic =
DiagnosticInfo
.Create(
208
[NotNullWhen(false)] out
DiagnosticInfo
? stringMarshallingDiagnostic)
217
stringMarshallingDiagnostic =
DiagnosticInfo
.Create(
226
stringMarshallingDiagnostic =
DiagnosticInfo
.Create(
236
stringMarshallingDiagnostic =
DiagnosticInfo
.Create(
251
stringMarshallingDiagnostic =
DiagnosticInfo
.Create(
268
[NotNullWhen(false)] out
DiagnosticInfo
? optionsDiagnostic)
273
optionsDiagnostic =
DiagnosticInfo
.Create(
287
optionsDiagnostic =
DiagnosticInfo
.Create(
302
[NotNullWhen(false)] out
DiagnosticInfo
? exceptionToUnmanagedMarshallerDiagnostic)
308
exceptionToUnmanagedMarshallerDiagnostic =
DiagnosticInfo
.Create(
318
exceptionToUnmanagedMarshallerDiagnostic =
DiagnosticInfo
.Create(
330
private static bool TryGetBaseComInterface(INamedTypeSymbol comIface, InterfaceDeclarationSyntax? syntax, out INamedTypeSymbol? baseComIface, [NotNullWhen(false)] out
DiagnosticInfo
? diagnostic)
348
diagnostic =
DiagnosticInfo
.Create(
365
private static bool TryGetGuid(INamedTypeSymbol interfaceSymbol, InterfaceDeclarationSyntax syntax, [NotNullWhen(true)] out Guid? guid, [NotNullWhen(false)] out
DiagnosticInfo
? diagnostic)
390
diagnostic =
DiagnosticInfo
.Create(
ComMethodInfo.cs (6)
66
private static
DiagnosticInfo
? GetDiagnosticIfInvalidMethodForGeneration(MethodDeclarationSyntax comMethodDeclaringSyntax, IMethodSymbol method)
74
return
DiagnosticInfo
.Create(GeneratorDiagnostics.InvalidAttributedMethodSignature, comMethodDeclaringSyntax.Identifier.GetLocation(), method.Name);
80
return
DiagnosticInfo
.Create(GeneratorDiagnostics.ReturnConfigurationNotSupported, comMethodDeclaringSyntax.Identifier.GetLocation(), "ref return", method.ToDisplayString());
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()));
138
var
diag = GetDiagnosticIfInvalidMethodForGeneration(comMethodDeclaringSyntax, method);
Comparers.cs (4)
18
public static readonly IEqualityComparer<(MemberDeclarationSyntax Syntax, ImmutableArray<
DiagnosticInfo
> Diagnostics)> GeneratedSyntax = new CustomValueTupleElementComparer<MemberDeclarationSyntax, ImmutableArray<
DiagnosticInfo
>>(SyntaxEquivalentComparer.Instance, new ImmutableArraySequenceEqualComparer<
DiagnosticInfo
>(EqualityComparer<
DiagnosticInfo
>.Default));
GeneratedStubCodeContext.cs (1)
13
SequenceEqualImmutableArray<
DiagnosticInfo
> Diagnostics) : GeneratedMethodContextBase(OriginalDefiningType, Diagnostics);
IncrementalMethodStubGenerationContext.cs (3)
8
internal abstract record GeneratedMethodContextBase(ManagedTypeInfo OriginalDefiningType, SequenceEqualImmutableArray<
DiagnosticInfo
> Diagnostics);
19
SequenceEqualImmutableArray<
DiagnosticInfo
> Diagnostics,
33
SequenceEqualImmutableArray<
DiagnosticInfo
> Diagnostics,
SkippedStubContext.cs (1)
9
internal sealed record SkippedStubContext(ManagedTypeInfo OriginalDefiningType) : GeneratedMethodContextBase(OriginalDefiningType, new(ImmutableArray<
DiagnosticInfo
>.Empty));
VirtualMethodPointerStubGenerator.cs (2)
23
public static (MethodDeclarationSyntax, ImmutableArray<
DiagnosticInfo
>) GenerateManagedToNativeStub(
130
public static (MethodDeclarationSyntax, ImmutableArray<
DiagnosticInfo
>) GenerateNativeToManagedStub(
VtableIndexStubGenerator.cs (1)
305
new SequenceEqualImmutableArray<
DiagnosticInfo
>(generatorDiagnostics.Diagnostics.ToImmutableArray()),
Microsoft.Interop.JavaScript.JSImportGenerator (10)
Analyzers\JSExportDiagnosticsAnalyzer.cs (1)
24
protected override ImmutableArray<
DiagnosticInfo
> CalculateDiagnostics(
Analyzers\JSImportDiagnosticsAnalyzer.cs (1)
24
protected override ImmutableArray<
DiagnosticInfo
> CalculateDiagnostics(
Analyzers\JSImportExportDiagnosticsAnalyzer.cs (8)
58
protected abstract ImmutableArray<
DiagnosticInfo
> CalculateDiagnostics(
105
endContext.ReportDiagnostic(
DiagnosticInfo
.Create(RequiresAllowUnsafeBlocksDescriptor, null).ToDiagnostic());
118
DiagnosticInfo
? invalidMethodDiagnostic = GetDiagnosticIfInvalidMethodForGeneration(
129
foreach (
DiagnosticInfo
diagnostic in CalculateDiagnostics(methodSyntax, method, attr, env, context.CancellationToken))
149
internal static
DiagnosticInfo
? GetDiagnosticIfInvalidMethodForGeneration(
166
return
DiagnosticInfo
.Create(invalidSignatureDescriptor, methodSyntax.Identifier.GetLocation(), method.Name);
172
return
DiagnosticInfo
.Create(containingTypeMissingModifiersDescriptor, methodSyntax.Identifier.GetLocation(), method.Name, nonPartialIdentifier);
178
return
DiagnosticInfo
.Create(GeneratorDiagnostics.ReturnConfigurationNotSupported, methodSyntax.Identifier.GetLocation(), "ref return", method.ToDisplayString());
Microsoft.Interop.LibraryImportGenerator (9)
Analyzers\LibraryImportDiagnosticsAnalyzer.cs (8)
83
endContext.ReportDiagnostic(
DiagnosticInfo
.Create(GeneratorDiagnostics.RequiresAllowUnsafeBlocks, null).ToDiagnostic());
133
DiagnosticInfo
? invalidMethodDiagnostic = GetDiagnosticIfInvalidMethodForGeneration(methodSyntax, method);
145
foreach (
DiagnosticInfo
diagnostic in diagnostics)
151
private static ImmutableArray<
DiagnosticInfo
> CalculateDiagnostics(
273
internal static
DiagnosticInfo
? GetDiagnosticIfInvalidMethodForGeneration(MethodDeclarationSyntax methodSyntax, IMethodSymbol method)
282
return
DiagnosticInfo
.Create(GeneratorDiagnostics.InvalidAttributedMethodSignature, methodSyntax.Identifier.GetLocation(), method.Name);
288
return
DiagnosticInfo
.Create(GeneratorDiagnostics.InvalidAttributedMethodContainingTypeMissingModifiers, methodSyntax.Identifier.GetLocation(), method.Name, nonPartialIdentifier);
294
return
DiagnosticInfo
.Create(GeneratorDiagnostics.ReturnConfigurationNotSupported, methodSyntax.Identifier.GetLocation(), "ref return", method.ToDisplayString());
GeneratorDiagnostics.cs (1)
295
DiagnosticInfo
.Create(
Microsoft.Interop.LibraryImportGenerator.Downlevel (9)
DownlevelLibraryImportDiagnosticsAnalyzer.cs (8)
77
endContext.ReportDiagnostic(
DiagnosticInfo
.Create(GeneratorDiagnostics.RequiresAllowUnsafeBlocks, null).ToDiagnostic());
134
DiagnosticInfo
? invalidMethodDiagnostic = GetDiagnosticIfInvalidMethodForGeneration(methodSyntax, method);
144
foreach (
DiagnosticInfo
diagnostic in diagnostics)
150
private static ImmutableArray<
DiagnosticInfo
> CalculateDiagnostics(
277
internal static
DiagnosticInfo
? GetDiagnosticIfInvalidMethodForGeneration(MethodDeclarationSyntax methodSyntax, IMethodSymbol method)
286
return
DiagnosticInfo
.Create(GeneratorDiagnostics.InvalidAttributedMethodSignature, methodSyntax.Identifier.GetLocation(), method.Name);
292
return
DiagnosticInfo
.Create(GeneratorDiagnostics.InvalidAttributedMethodContainingTypeMissingModifiers, methodSyntax.Identifier.GetLocation(), method.Name, nonPartialIdentifier);
298
return
DiagnosticInfo
.Create(GeneratorDiagnostics.ReturnConfigurationNotSupported, methodSyntax.Identifier.GetLocation(), "ref return", method.ToDisplayString());
GeneratorDiagnostics.cs (1)
295
DiagnosticInfo
.Create(
Microsoft.Interop.SourceGeneration (41)
DiagnosticExtensions.cs (12)
116
public static
DiagnosticInfo
CreateDiagnosticInfo(
124
public static
DiagnosticInfo
CreateDiagnosticInfo(
133
public static
DiagnosticInfo
CreateDiagnosticInfo(
146
public static
DiagnosticInfo
CreateDiagnosticInfo(
160
public static
DiagnosticInfo
CreateDiagnosticInfo(
168
public static
DiagnosticInfo
CreateDiagnosticInfo(
192
DiagnosticInfo
.Create(descriptor, Location.None, properties: properties, args) :
193
DiagnosticInfo
.Create(descriptor, firstLocation, additionalLocations: additionalLocations, properties: properties, messageArgs: args);
196
public static
DiagnosticInfo
CreateDiagnosticInfo(
201
return
DiagnosticInfo
.Create(
207
public static
DiagnosticInfo
CreateDiagnosticInfo(
213
return
DiagnosticInfo
.Create(
DiagnosticInfo.cs (3)
26
public static
DiagnosticInfo
Create(DiagnosticDescriptor descriptor, Location location, params object?[] messageArgs)
38
public static
DiagnosticInfo
Create(DiagnosticDescriptor descriptor, Location location, ImmutableDictionary<string, string>? properties, params object?[] messageArgs)
50
public static
DiagnosticInfo
Create(DiagnosticDescriptor descriptor, Location location, IEnumerable<Location>? additionalLocations, ImmutableDictionary<string, string>? properties, params object?[] messageArgs)
DiagnosticOr.cs (10)
28
public abstract ImmutableArray<
DiagnosticInfo
> Diagnostics { get; }
32
private readonly SequenceEqualImmutableArray<
DiagnosticInfo
> _diagnostics;
33
internal Diag(ImmutableArray<
DiagnosticInfo
> diagnostics) => _diagnostics = diagnostics.ToSequenceEqual();
37
public override ImmutableArray<
DiagnosticInfo
> Diagnostics => _diagnostics.Array;
47
public override ImmutableArray<
DiagnosticInfo
> Diagnostics => throw new InvalidOperationException();
53
private readonly SequenceEqualImmutableArray<
DiagnosticInfo
> _diagnostics;
54
internal ValueAndDiagnostic(T value, ImmutableArray<
DiagnosticInfo
> diagnostics) => (_value, _diagnostics) = (value, diagnostics.ToSequenceEqual());
58
public override ImmutableArray<
DiagnosticInfo
> Diagnostics => _diagnostics.Array;
64
public static DiagnosticOr<T> From(
DiagnosticInfo
diagnostic)
81
public static DiagnosticOr<T> From(T value, params
DiagnosticInfo
[] diagnostics)
GeneratorDiagnosticsBag.cs (3)
22
private readonly List<
DiagnosticInfo
> _diagnostics = new();
23
public IEnumerable<
DiagnosticInfo
> Diagnostics => _diagnostics;
44
public void ReportDiagnostic(
DiagnosticInfo
diagnostic)
Marshalling\GeneratorDiagnostic.cs (8)
26
public abstract
DiagnosticInfo
ToDiagnosticInfo(DiagnosticDescriptor descriptor, Location location, string elementName);
35
public override
DiagnosticInfo
ToDiagnosticInfo(DiagnosticDescriptor descriptor, Location location, string elementName)
39
return
DiagnosticInfo
.Create(descriptor, location, DiagnosticProperties, NotSupportedDetails, elementName);
41
return
DiagnosticInfo
.Create(descriptor, location, DiagnosticProperties, TypePositionInfo.ManagedType.DiagnosticFormattedName, elementName);
50
public override
DiagnosticInfo
ToDiagnosticInfo(DiagnosticDescriptor descriptor, Location location, string elementName)
52
return
DiagnosticInfo
.Create(
68
public override
DiagnosticInfo
ToDiagnosticInfo(DiagnosticDescriptor descriptor, Location location, string elementName)
70
return
DiagnosticInfo
.Create(
Marshalling\MarshallerHelpers.cs (2)
364
DiagnosticInfo
.Create(
374
DiagnosticInfo
.Create(
MethodSignatureDiagnosticLocations.cs (3)
42
DiagnosticInfo
CreateDiagnosticInfo(DiagnosticDescriptor descriptor, GeneratorDiagnostic diagnostic);
48
public
DiagnosticInfo
CreateDiagnosticInfo(DiagnosticDescriptor descriptor, GeneratorDiagnostic diagnostic)
70
public
DiagnosticInfo
CreateDiagnosticInfo(DiagnosticDescriptor descriptor, GeneratorDiagnostic diagnostic)