25 instantiations of DiagnosticData
Microsoft.CodeAnalysis.EditorFeatures.Test.Utilities (1)
Microsoft.CodeAnalysis.EditorFeatures.UnitTests (8)
Microsoft.CodeAnalysis.EditorFeatures2.UnitTests (1)
Microsoft.CodeAnalysis.LanguageServer.Protocol (3)
Microsoft.CodeAnalysis.Workspaces (2)
Microsoft.VisualStudio.LanguageServices (2)
Microsoft.VisualStudio.LanguageServices.UnitTests (8)
653 references to DiagnosticData
Microsoft.CodeAnalysis.CSharp.EditorFeatures.UnitTests (1)
Microsoft.CodeAnalysis.EditorFeatures (22)
Microsoft.CodeAnalysis.EditorFeatures.Cocoa (3)
Microsoft.CodeAnalysis.EditorFeatures.Test.Utilities (19)
Diagnostics\MockDiagnosticAnalyzerService.cs (12)
24private readonly ArrayBuilder<(DiagnosticData Diagnostic, DiagnosticKind KindFilter)> _diagnosticsWithKindFilter;
32_diagnosticsWithKindFilter = ArrayBuilder<(DiagnosticData Diagnostic, DiagnosticKind KindFilter)>.GetInstance();
35public void AddDiagnostic(DiagnosticData diagnostic, DiagnosticKind diagnosticKind)
38public void AddDiagnostics(ImmutableArray<DiagnosticData> diagnostics, DiagnosticKind diagnosticKind)
40foreach (var diagnostic in diagnostics)
58public Task<ImmutableArray<DiagnosticData>> GetCachedDiagnosticsAsync(Workspace workspace, ProjectId? projectId = null, DocumentId? documentId = null, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default)
61public Task<ImmutableArray<DiagnosticData>> GetDiagnosticsAsync(Solution solution, ProjectId? projectId = null, DocumentId? documentId = null, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default)
64public Task<ImmutableArray<DiagnosticData>> GetDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId = null, DocumentId? documentId = null, ImmutableHashSet<string>? diagnosticIds = null, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default)
67public Task<ImmutableArray<DiagnosticData>> GetDiagnosticsForSpanAsync(TextDocument document, TextSpan? range, Func<string, bool>? shouldIncludeDiagnostic, bool includeCompilerDiagnostics, bool includeSuppressedDiagnostics = true, CodeActionRequestPriority priority = CodeActionRequestPriority.None, Func<string, IDisposable?>? addOperationScope = null, DiagnosticKind diagnosticKind = DiagnosticKind.All, CancellationToken cancellationToken = default)
70public Task<ImmutableArray<DiagnosticData>> GetProjectDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId = null, ImmutableHashSet<string>? diagnosticIds = null, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default)
73public Task<ImmutableArray<DiagnosticData>> GetSpecificCachedDiagnosticsAsync(Workspace workspace, object id, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default)
76public Task<(ImmutableArray<DiagnosticData> diagnostics, bool upToDate)> TryGetDiagnosticsForSpanAsync(TextDocument document, TextSpan range, Func<string, bool>? shouldIncludeDiagnostic, bool includeSuppressedDiagnostics = false, CodeActionRequestPriority priority = CodeActionRequestPriority.None, DiagnosticKind diagnosticKind = DiagnosticKind.All, CancellationToken cancellationToken = default)
Microsoft.CodeAnalysis.EditorFeatures.UnitTests (44)
Diagnostics\DiagnosticAnalyzerServiceTests.cs (13)
213var diagnostic = Assert.Single(diagnostics);
248Func<bool, bool, ImmutableArray<DiagnosticData>, (bool, bool)> resultSetter,
399ImmutableDictionary<ProjectId, ImmutableArray<DiagnosticData>>.Empty.Add(
401ImmutableArray.Create(DiagnosticData.Create(document.Project.Solution, Diagnostic.Create(NoNameAnalyzer.s_syntaxRule, location, properties), document.Project))),
659var diagnostics = new ConcurrentSet<DiagnosticData>();
718var diagnostic = Assert.Single(applicableDiagnostics);
765DiagnosticData diagnostic = null;
898var diagnostics = ArrayBuilder<DiagnosticData>.GetInstance();
996DiagnosticData diagnostic = null;
1079var diagnostic = Assert.Single(semanticDiagnostics);
1140var diagnostic = kind == AnalysisKind.Syntax ? builder.Syntax.Single().Item2.Single() : builder.Semantic.Single().Item2.Single();
1202private static (bool, bool) AnalyzerResultSetter(bool syntax, bool semantic, ImmutableArray<DiagnosticData> diagnostics)
1220private static (bool, bool) CompilerAnalyzerResultSetter(bool syntax, bool semantic, ImmutableArray<DiagnosticData> diagnostics)
Diagnostics\DiagnosticServiceTests.cs (9)
49var diagnostic = RaiseDiagnosticEvent(mutex, source, workspace, document.Project.Id, document.Id, id);
166private static DiagnosticData RaiseDiagnosticEvent(ManualResetEvent set, TestDiagnosticUpdateSource source, TestWorkspace workspace, ProjectId projectId, DocumentId documentId, object id)
170var diagnostic = CreateDiagnosticData(projectId, documentId);
180private static DiagnosticData CreateDiagnosticData(ProjectId projectId, DocumentId documentId)
199private readonly ImmutableArray<DiagnosticData> _diagnosticData;
201public TestDiagnosticUpdateSource(bool support, DiagnosticData[] diagnosticData)
204_diagnosticData = (diagnosticData ?? Array.Empty<DiagnosticData>()).ToImmutableArray();
211public ValueTask<ImmutableArray<DiagnosticData>> GetDiagnosticsAsync(Workspace workspace, ProjectId projectId, DocumentId documentId, object id, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default)
212=> new(_support ? _diagnosticData : ImmutableArray<DiagnosticData>.Empty);
Diagnostics\MockDiagnosticService.cs (6)
25private DiagnosticData? _diagnosticData;
35public ValueTask<ImmutableArray<DiagnosticData>> GetDiagnosticsAsync(
38return new ValueTask<ImmutableArray<DiagnosticData>>(GetDiagnostics(workspace, projectId, documentId));
41private ImmutableArray<DiagnosticData> GetDiagnostics(Workspace workspace, ProjectId? projectId, DocumentId? documentId)
46return _diagnosticData == null ? ImmutableArray<DiagnosticData>.Empty : ImmutableArray.Create(_diagnosticData);
63_diagnosticData = DiagnosticData.Create(Diagnostic.Create(DiagnosticId, "MockCategory", "MockMessage", DiagnosticSeverity.Error, DiagnosticSeverity.Error, isEnabledByDefault: true, warningLevel: 0,
Microsoft.CodeAnalysis.EditorFeatures.Wpf (7)
Microsoft.CodeAnalysis.EditorFeatures2.UnitTests (11)
Microsoft.CodeAnalysis.Features (68)
Diagnostics\AbstractHostDiagnosticUpdateSource.cs (10)
21private ImmutableDictionary<DiagnosticAnalyzer, ImmutableHashSet<DiagnosticData>> _analyzerHostDiagnosticsMap =
22ImmutableDictionary<DiagnosticAnalyzer, ImmutableHashSet<DiagnosticData>>.Empty;
28public ValueTask<ImmutableArray<DiagnosticData>> GetDiagnosticsAsync(Workspace workspace, ProjectId projectId, DocumentId documentId, object id, bool includeSuppressedDiagnostics, CancellationToken cancellationToken)
29=> new(ImmutableArray<DiagnosticData>.Empty);
51ReportAnalyzerDiagnostic(analyzer, DiagnosticData.Create(solution, diagnostic, project), project);
54public void ReportAnalyzerDiagnostic(DiagnosticAnalyzer analyzer, DiagnosticData diagnosticData, Project? project)
132private DiagnosticsUpdatedArgs MakeCreatedArgs(DiagnosticAnalyzer analyzer, ImmutableHashSet<DiagnosticData> items, Project? project)
156internal ImmutableArray<DiagnosticData> GetReportedDiagnostics()
159internal ImmutableHashSet<DiagnosticData> GetReportedDiagnostics(DiagnosticAnalyzer analyzer)
163diagnostics = ImmutableHashSet<DiagnosticData>.Empty;
Diagnostics\IDiagnosticAnalyzerService.cs (9)
33Task<ImmutableArray<DiagnosticData>> GetSpecificCachedDiagnosticsAsync(Workspace workspace, object id, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default);
38Task<ImmutableArray<DiagnosticData>> GetCachedDiagnosticsAsync(Workspace workspace, ProjectId? projectId = null, DocumentId? documentId = null, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default);
43Task<ImmutableArray<DiagnosticData>> GetDiagnosticsAsync(Solution solution, ProjectId? projectId = null, DocumentId? documentId = null, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default);
60Task<ImmutableArray<DiagnosticData>> GetDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId = null, DocumentId? documentId = null, ImmutableHashSet<string>? diagnosticIds = null, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default);
66Task<ImmutableArray<DiagnosticData>> GetProjectDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId = null, ImmutableHashSet<string>? diagnosticIds = null, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default);
80Task<(ImmutableArray<DiagnosticData> diagnostics, bool upToDate)> TryGetDiagnosticsForSpanAsync(
95Task<ImmutableArray<DiagnosticData>> GetDiagnosticsForSpanAsync(
106public static Task<ImmutableArray<DiagnosticData>> GetDiagnosticsForSpanAsync(this IDiagnosticAnalyzerService service,
121public static Task<ImmutableArray<DiagnosticData>> GetDiagnosticsForSpanAsync(this IDiagnosticAnalyzerService service,
Microsoft.CodeAnalysis.LanguageServer.Protocol (208)
Features\CodeFixes\CodeFixService.cs (14)
115var spanToErrorDiagnostics = new SortedDictionary<TextSpan, List<DiagnosticData>>();
116var spanToOtherDiagnostics = new SortedDictionary<TextSpan, List<DiagnosticData>>();
120foreach (var diagnostic in diagnostics)
142SortedDictionary<TextSpan, List<DiagnosticData>> spanToDiagnostics,
227private static SortedDictionary<TextSpan, List<DiagnosticData>> ConvertToMap(
228SourceText text, ImmutableArray<DiagnosticData> diagnostics)
234var spanToDiagnostics = new SortedDictionary<TextSpan, List<DiagnosticData>>();
235foreach (var diagnostic in diagnostics)
267var spanToDiagnostics = new SortedDictionary<TextSpan, List<DiagnosticData>>
401SortedDictionary<TextSpan, List<DiagnosticData>> spanToDiagnostics,
423using var _1 = PooledDictionary<CodeFixProvider, List<(TextSpan range, List<DiagnosticData> diagnostics)>>.GetInstance(out var fixerToRangesAndDiagnostics);
536List<DiagnosticData> diagnostics)
652IEnumerable<DiagnosticData> diagnostics,
689IEnumerable<DiagnosticData> diagnosticsWithSameSpan,
Features\Diagnostics\DiagnosticAnalyzerService.cs (15)
71public Task<(ImmutableArray<DiagnosticData> diagnostics, bool upToDate)> TryGetDiagnosticsForSpanAsync(
85using var _ = ArrayBuilder<DiagnosticData>.GetInstance(out var diagnostics);
94return Task.FromResult((ImmutableArray<DiagnosticData>.Empty, upToDate: false));
97public Task<ImmutableArray<DiagnosticData>> GetDiagnosticsForSpanAsync(
116return SpecializedTasks.EmptyImmutableArray<DiagnosticData>();
119public Task<ImmutableArray<DiagnosticData>> GetCachedDiagnosticsAsync(Workspace workspace, ProjectId? projectId = null, DocumentId? documentId = null, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default)
126return SpecializedTasks.EmptyImmutableArray<DiagnosticData>();
129public Task<ImmutableArray<DiagnosticData>> GetSpecificCachedDiagnosticsAsync(Workspace workspace, object id, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default)
136return SpecializedTasks.EmptyImmutableArray<DiagnosticData>();
139public Task<ImmutableArray<DiagnosticData>> GetDiagnosticsAsync(Solution solution, ProjectId? projectId = null, DocumentId? documentId = null, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default)
146return SpecializedTasks.EmptyImmutableArray<DiagnosticData>();
180public Task<ImmutableArray<DiagnosticData>> GetDiagnosticsForIdsAsync(
188return SpecializedTasks.EmptyImmutableArray<DiagnosticData>();
191public Task<ImmutableArray<DiagnosticData>> GetProjectDiagnosticsForIdsAsync(
199return SpecializedTasks.EmptyImmutableArray<DiagnosticData>();
Features\Diagnostics\DiagnosticAnalyzerService_UpdateSource.cs (3)
85ValueTask<ImmutableArray<DiagnosticData>> IDiagnosticUpdateSource.GetDiagnosticsAsync(Workspace workspace, ProjectId projectId, DocumentId documentId, object id, bool includeSuppressedDiagnostics, CancellationToken cancellationToken)
89return new ValueTask<ImmutableArray<DiagnosticData>>(GetSpecificCachedDiagnosticsAsync(workspace, id, includeSuppressedDiagnostics, cancellationToken));
92return new ValueTask<ImmutableArray<DiagnosticData>>(GetCachedDiagnosticsAsync(workspace, projectId, documentId, includeSuppressedDiagnostics, cancellationToken));
Features\Diagnostics\DocumentAnalysisExecutor.cs (21)
65public async Task<IEnumerable<DiagnosticData>> ComputeDiagnosticsAsync(DiagnosticAnalyzer analyzer, CancellationToken cancellationToken)
81? SpecializedCollections.SingletonEnumerable(DiagnosticData.Create(loadDiagnostic, textDocument))
82: SpecializedCollections.EmptyEnumerable<DiagnosticData>();
87return SpecializedCollections.EmptyEnumerable<DiagnosticData>();
100return SpecializedCollections.EmptyEnumerable<DiagnosticData>();
108return SpecializedCollections.EmptyEnumerable<DiagnosticData>();
126return SpecializedCollections.EmptyEnumerable<DiagnosticData>();
139return SpecializedCollections.EmptyEnumerable<DiagnosticData>();
146return SpecializedCollections.EmptyEnumerable<DiagnosticData>();
195private async Task<ImmutableArray<DiagnosticData>> GetCompilerAnalyzerDiagnosticsAsync(DiagnosticAnalyzer analyzer, TextSpan? span, CancellationToken cancellationToken)
206return ImmutableArray<DiagnosticData>.Empty;
212private async Task<ImmutableArray<DiagnosticData>> GetSyntaxDiagnosticsAsync(DiagnosticAnalyzer analyzer, bool isCompilerAnalyzer, CancellationToken cancellationToken)
227return ImmutableArray<DiagnosticData>.Empty;
242: ImmutableArray<DiagnosticData>.Empty;
245private async Task<ImmutableArray<DiagnosticData>> GetSemanticDiagnosticsAsync(DiagnosticAnalyzer analyzer, bool isCompilerAnalyzer, CancellationToken cancellationToken)
276: ImmutableArray<DiagnosticData>.Empty;
367private static async Task<ImmutableArray<DiagnosticData>> RemapDiagnosticLocationsIfRequiredAsync(
369ImmutableArray<DiagnosticData> diagnostics,
385using var _ = ArrayBuilder<DiagnosticData>.GetInstance(diagnostics.Length, out var builder);
386foreach (var diagnosticData in diagnostics)
389builder.Add(DiagnosticData.Create(diagnostic, textDocument));
Features\Diagnostics\EngineV2\DiagnosticIncrementalAnalyzer.Executor.cs (7)
507ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Builder? lazyLoadDiagnostics = null;
514lazyLoadDiagnostics ??= ImmutableDictionary.CreateBuilder<DocumentId, ImmutableArray<DiagnosticData>>();
515lazyLoadDiagnostics.Add(document.Id, ImmutableArray.Create(DiagnosticData.Create(loadDiagnostic, document)));
527syntaxLocalMap: lazyLoadDiagnostics?.ToImmutable() ?? ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
528semanticLocalMap: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
529nonLocalMap: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
530others: ImmutableArray<DiagnosticData>.Empty,
Features\Diagnostics\EngineV2\DiagnosticIncrementalAnalyzer.IncrementalMemberEditAnalyzer.cs (17)
46public async Task<ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<DiagnosticData>>> ComputeDiagnosticsAsync(
50Func<DiagnosticAnalyzer, DocumentAnalysisExecutor, CancellationToken, Task<ImmutableArray<DiagnosticData>>> computeAnalyzerDiagnosticsAsync,
51Func<DocumentAnalysisExecutor, CancellationToken, Task<ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<DiagnosticData>>>> computeDiagnosticsNonIncrementallyAsync,
115using var _ = PooledDictionary<DiagnosticAnalyzer, ImmutableArray<DiagnosticData>>.GetInstance(out var builder);
131PooledDictionary<DiagnosticAnalyzer, ImmutableArray<DiagnosticData>> builder)
146PooledDictionary<DiagnosticAnalyzer, ImmutableArray<DiagnosticData>> builder)
158PooledDictionary<DiagnosticAnalyzer, ImmutableArray<DiagnosticData>> builder)
171PooledDictionary<DiagnosticAnalyzer, ImmutableArray<DiagnosticData>> builder)
233private static async Task<ImmutableArray<DiagnosticData>> GetUpdatedDiagnosticsForMemberEditAsync(
234ImmutableArray<DiagnosticData> diagnostics,
241Func<DiagnosticAnalyzer, DocumentAnalysisExecutor, CancellationToken, Task<ImmutableArray<DiagnosticData>>> computeAnalyzerDiagnosticsAsync,
288ImmutableArray<DiagnosticData> memberDiagnostics,
293out ImmutableArray<DiagnosticData> updatedDiagnostics)
316using var _ = ArrayBuilder<DiagnosticData>.GetInstance(out var resultBuilder);
323foreach (var diagnostic in diagnostics)
374static DiagnosticData UpdateLocations(DiagnosticData diagnostic, SyntaxTree tree, SourceText text, int delta)
Features\Diagnostics\EngineV2\DiagnosticIncrementalAnalyzer.ProjectState.cs (16)
350private ValueTask AddToInMemoryStorageAsync(VersionStamp serializerVersion, Project project, TextDocument? document, object key, string stateKey, ImmutableArray<DiagnosticData> diagnostics)
410private ValueTask<ImmutableArray<DiagnosticData>> GetDiagnosticsFromInMemoryStorageAsync(
452private ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Builder? _syntaxLocals;
453private ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Builder? _semanticLocals;
454private ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Builder? _nonLocals;
455private ImmutableArray<DiagnosticData> _others;
464public void AddSyntaxLocals(DocumentId documentId, ImmutableArray<DiagnosticData> diagnostics)
467public void AddSemanticLocals(DocumentId documentId, ImmutableArray<DiagnosticData> diagnostics)
470public void AddNonLocals(DocumentId documentId, ImmutableArray<DiagnosticData> diagnostics)
473public void AddOthers(ImmutableArray<DiagnosticData> diagnostics)
476private void Add(ref ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Builder? locals, DocumentId documentId, ImmutableArray<DiagnosticData> diagnostics)
483locals ??= ImmutableDictionary.CreateBuilder<DocumentId, ImmutableArray<DiagnosticData>>();
490_syntaxLocals?.ToImmutable() ?? ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
491_semanticLocals?.ToImmutable() ?? ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
492_nonLocals?.ToImmutable() ?? ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
Features\Diagnostics\EngineV2\DiagnosticIncrementalAnalyzer_GetDiagnostics.cs (23)
19public Task<ImmutableArray<DiagnosticData>> GetSpecificCachedDiagnosticsAsync(Solution solution, object id, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default)
23return SpecializedTasks.EmptyImmutableArray<DiagnosticData>();
30public Task<ImmutableArray<DiagnosticData>> GetCachedDiagnosticsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default)
33public Task<ImmutableArray<DiagnosticData>> GetDiagnosticsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default)
36public Task<ImmutableArray<DiagnosticData>> GetDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, ImmutableHashSet<string>? diagnosticIds, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default)
39public Task<ImmutableArray<DiagnosticData>> GetProjectDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, ImmutableHashSet<string>? diagnosticIds, bool includeSuppressedDiagnostics = false, CancellationToken cancellationToken = default)
51private ImmutableArray<DiagnosticData>.Builder? _lazyDataBuilder;
71protected virtual bool ShouldIncludeDiagnostic(DiagnosticData diagnostic) => true;
73protected ImmutableArray<DiagnosticData> GetDiagnosticData()
74=> (_lazyDataBuilder != null) ? _lazyDataBuilder.ToImmutableArray() : ImmutableArray<DiagnosticData>.Empty;
78public async Task<ImmutableArray<DiagnosticData>> GetDiagnosticsAsync(CancellationToken cancellationToken)
119protected void AppendDiagnostics(ImmutableArray<DiagnosticData> items)
125Interlocked.CompareExchange(ref _lazyDataBuilder, ImmutableArray.CreateBuilder<DiagnosticData>(), null);
134private bool ShouldIncludeSuppressedDiagnostic(DiagnosticData diagnostic)
164public async Task<ImmutableArray<DiagnosticData>> GetSpecificDiagnosticsAsync(DiagnosticAnalyzer analyzer, AnalysisKind analysisKind, CancellationToken cancellationToken)
170return ImmutableArray<DiagnosticData>.Empty;
176return ImmutableArray<DiagnosticData>.Empty;
184private static async Task<ImmutableArray<DiagnosticData>> GetDiagnosticsAsync(StateSet stateSet, Project project, DocumentId? documentId, AnalysisKind kind, CancellationToken cancellationToken)
198private static async Task<ImmutableArray<DiagnosticData>> GetProjectStateDiagnosticsAsync(StateSet stateSet, Project project, DocumentId? documentId, AnalysisKind kind, CancellationToken cancellationToken)
203return ImmutableArray<DiagnosticData>.Empty;
215return ImmutableArray<DiagnosticData>.Empty;
238public async Task<ImmutableArray<DiagnosticData>> GetProjectDiagnosticsAsync(CancellationToken cancellationToken)
255protected override bool ShouldIncludeDiagnostic(DiagnosticData diagnostic)
Features\Diagnostics\EngineV2\DiagnosticIncrementalAnalyzer_GetDiagnosticsForSpan.cs (14)
25TextDocument document, TextSpan? range, ArrayBuilder<DiagnosticData> result, Func<string, bool>? shouldIncludeDiagnostic,
35public async Task<ImmutableArray<DiagnosticData>> GetDiagnosticsForSpanAsync(
47using var _ = ArrayBuilder<DiagnosticData>.GetInstance(out var list);
83private delegate Task<IEnumerable<DiagnosticData>> DiagnosticsGetterAsync(DiagnosticAnalyzer analyzer, DocumentAnalysisExecutor executor, CancellationToken cancellationToken);
182public async Task<bool> TryGetAsync(ArrayBuilder<DiagnosticData> list, CancellationToken cancellationToken)
276ArrayBuilder<DiagnosticData> list,
297foreach (var item in existingData.Items)
313ArrayBuilder<DiagnosticData> builder,
340ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<DiagnosticData>> diagnosticsMap;
374private async Task<ImmutableDictionary<DiagnosticAnalyzer, ImmutableArray<DiagnosticData>>> ComputeDocumentDiagnosticsCoreAsync(
378using var _ = PooledDictionary<DiagnosticAnalyzer, ImmutableArray<DiagnosticData>>.GetInstance(out var builder);
388private async Task<ImmutableArray<DiagnosticData>> ComputeDocumentDiagnosticsForAnalyzerCoreAsync(
402return diagnostics?.ToImmutableArrayOrEmpty() ?? ImmutableArray<DiagnosticData>.Empty;
428private bool ShouldInclude(DiagnosticData diagnostic)
Features\Diagnostics\EngineV2\DiagnosticIncrementalAnalyzer_IncrementalAnalyzer.cs (6)
511private void RaiseDocumentDiagnosticsIfNeeded(TextDocument document, StateSet stateSet, AnalysisKind kind, ImmutableArray<DiagnosticData> items)
512=> RaiseDocumentDiagnosticsIfNeeded(document, stateSet, kind, ImmutableArray<DiagnosticData>.Empty, items);
515TextDocument document, StateSet stateSet, AnalysisKind kind, ImmutableArray<DiagnosticData> oldItems, ImmutableArray<DiagnosticData> newItems)
543ImmutableArray<DiagnosticData> oldItems, ImmutableArray<DiagnosticData> newItems,
Microsoft.CodeAnalysis.LanguageServer.Protocol.UnitTests (1)
Microsoft.CodeAnalysis.Remote.ServiceHub (3)
Microsoft.CodeAnalysis.Workspaces (95)
Diagnostics\DiagnosticAnalysisResult.cs (39)
36private readonly ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>? _syntaxLocals;
41private readonly ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>? _semanticLocals;
46private readonly ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>? _nonLocals;
51private readonly ImmutableArray<DiagnosticData> _others;
70ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> syntaxLocals,
71ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> semanticLocals,
72ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> nonLocals,
73ImmutableArray<DiagnosticData> others,
101syntaxLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
102semanticLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
103nonLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
104others: ImmutableArray<DiagnosticData>.Empty,
118public static DiagnosticAnalysisResult CreateFromBuild(Project project, ImmutableArray<DiagnosticData> diagnostics, IEnumerable<DocumentId> initialDocuments)
127var diagnosticsWithDocumentId = PooledDictionary<DocumentId, ArrayBuilder<DiagnosticData>>.GetInstance();
128var diagnosticsWithoutDocumentId = ArrayBuilder<DiagnosticData>.GetInstance();
130foreach (var data in diagnostics)
148syntaxLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
150nonLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
160ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> syntaxLocalMap,
161ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> semanticLocalMap,
162ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> nonLocalMap,
163ImmutableArray<DiagnosticData> others,
202private ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>? GetMap(AnalysisKind kind)
211public ImmutableArray<DiagnosticData> GetAllDiagnostics()
216return ImmutableArray<DiagnosticData>.Empty;
224var builder = ArrayBuilder<DiagnosticData>.GetInstance();
241foreach (var data in _others)
249public ImmutableArray<DiagnosticData> GetDocumentDiagnostics(DocumentId documentId, AnalysisKind kind)
253return ImmutableArray<DiagnosticData>.Empty;
265return ImmutableArray<DiagnosticData>.Empty;
268public ImmutableArray<DiagnosticData> GetOtherDiagnostics()
269=> (IsAggregatedForm || IsEmpty) ? ImmutableArray<DiagnosticData>.Empty : _others;
293semanticLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
294nonLocals: ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty,
295others: ImmutableArray<DiagnosticData>.Empty,
301ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>? syntaxLocals,
302ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>? semanticLocals,
303ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>? nonLocals)
332private static void VerifyDocumentMap(Project project, ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> map)
Diagnostics\DiagnosticAnalysisResultBuilder.cs (27)
27private Dictionary<DocumentId, List<DiagnosticData>>? _lazySyntaxLocals;
28private Dictionary<DocumentId, List<DiagnosticData>>? _lazySemanticLocals;
29private Dictionary<DocumentId, List<DiagnosticData>>? _lazyNonLocals;
31private List<DiagnosticData>? _lazyOthers;
46public readonly ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> SyntaxLocals => Convert(_lazySyntaxLocals);
47public readonly ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> SemanticLocals => Convert(_lazySemanticLocals);
48public readonly ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> NonLocals => Convert(_lazyNonLocals);
49public readonly ImmutableArray<DiagnosticData> Others => _lazyOthers == null ? ImmutableArray<DiagnosticData>.Empty : _lazyOthers.ToImmutableArray();
65ref Dictionary<DocumentId, List<DiagnosticData>>? lazyLocals, DocumentId documentId, IEnumerable<Diagnostic> diagnostics)
88AddOtherDiagnostic(DiagnosticData.Create(Project.Solution, diagnostic, Project));
95AddOtherDiagnostic(DiagnosticData.Create(Project.Solution, diagnostic, Project));
110private void AddDocumentDiagnostic(ref Dictionary<DocumentId, List<DiagnosticData>>? map, TextDocument? document, Diagnostic diagnostic)
117map ??= new Dictionary<DocumentId, List<DiagnosticData>>();
118map.GetOrAdd(document.Id, _ => new List<DiagnosticData>()).Add(DiagnosticData.Create(diagnostic, document));
124private void AddOtherDiagnostic(DiagnosticData data)
126_lazyOthers ??= new List<DiagnosticData>();
141Dictionary<DocumentId, List<DiagnosticData>>? dummy = null;
149ref Dictionary<DocumentId, List<DiagnosticData>>? lazyLocals, SyntaxTree? tree, Diagnostic diagnostic)
162AddOtherDiagnostic(DiagnosticData.Create(Project.Solution, diagnostic, Project));
168AddOtherDiagnostic(DiagnosticData.Create(Project.Solution, diagnostic, Project));
186AddOtherDiagnostic(DiagnosticData.Create(Project.Solution, diagnostic, Project));
202ref Dictionary<DocumentId, List<DiagnosticData>>? lazyLocals, SyntaxTree? tree, IEnumerable<Diagnostic> diagnostics)
208private static ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>> Convert(Dictionary<DocumentId, List<DiagnosticData>>? map)
211? ImmutableDictionary<DocumentId, ImmutableArray<DiagnosticData>>.Empty
Microsoft.VisualStudio.LanguageServices (124)
TableDataSource\Suppression\VisualStudioSuppressionFixService.cs (25)
156private async Task<ImmutableArray<DiagnosticData>> GetAllBuildDiagnosticsAsync(Func<Project, bool> shouldFixInProject, CancellationToken cancellationToken)
158using var _ = CodeAnalysis.PooledObjects.ArrayBuilder<DiagnosticData>.GetInstance(out var builder);
193foreach (var diagnostic in group)
212private IEnumerable<DiagnosticData>? GetDiagnosticsToFix(Func<Project, bool> shouldFixInProject, bool selectedEntriesOnly, bool isAddSuppression)
214var diagnosticsToFix = ImmutableHashSet<DiagnosticData>.Empty;
247private bool ApplySuppressionFix(IEnumerable<DiagnosticData>? diagnosticsToFix, Func<Project, bool> shouldFixInProject, bool filterStaleDiagnostics, bool isAddSuppression, bool isSuppressionInSource, bool onlyCompilerDiagnostics, bool showPreviewChangesDialog)
253private async Task ApplySuppressionFixAsync(IEnumerable<DiagnosticData>? diagnosticsToFix, Func<Project, bool> shouldFixInProject, bool filterStaleDiagnostics, bool isAddSuppression, bool isSuppressionInSource, bool onlyCompilerDiagnostics, bool showPreviewChangesDialog)
418private static IEnumerable<DiagnosticData> FilterDiagnostics(IEnumerable<DiagnosticData> diagnostics, bool isAddSuppression, bool isSuppressionInSource, bool onlyCompilerDiagnostics)
420foreach (var diagnostic in diagnostics)
512private async Task<ImmutableDictionary<Document, ImmutableArray<Diagnostic>>> GetDocumentDiagnosticsToFixAsync(IEnumerable<DiagnosticData> diagnosticsToFix, Func<Project, bool> shouldFixInProject, bool filterStaleDiagnostics, CancellationToken cancellationToken)
514var builder = ImmutableDictionary.CreateBuilder<DocumentId, List<DiagnosticData>>();
515foreach (var diagnosticData in diagnosticsToFix.Where(IsDocumentDiagnostic))
521diagnosticsPerDocument = new List<DiagnosticData>();
534var latestDocumentDiagnosticsMap = filterStaleDiagnostics ? new Dictionary<DocumentId, ImmutableHashSet<DiagnosticData>>() : null;
567IEnumerable<DiagnosticData> documentDiagnosticsToFix;
575latestDocumentDiagnostics = ImmutableHashSet<DiagnosticData>.Empty;
600static bool IsDocumentDiagnostic(DiagnosticData d) => d.DocumentId != null;
603private async Task<ImmutableDictionary<Project, ImmutableArray<Diagnostic>>> GetProjectDiagnosticsToFixAsync(IEnumerable<DiagnosticData> diagnosticsToFix, Func<Project, bool> shouldFixInProject, bool filterStaleDiagnostics, CancellationToken cancellationToken)
605var builder = ImmutableDictionary.CreateBuilder<ProjectId, List<DiagnosticData>>();
606foreach (var diagnosticData in diagnosticsToFix.Where(IsProjectDiagnostic))
612diagnosticsPerProject = new List<DiagnosticData>();
625var latestDiagnosticsToFix = filterStaleDiagnostics ? new HashSet<DiagnosticData>() : null;
632IEnumerable<DiagnosticData> projectDiagnosticsToFix;
662static bool IsProjectDiagnostic(DiagnosticData d) => d.DataLocation == null && d.ProjectId != null;
TaskList\ExternalErrorDiagnosticUpdateSource.cs (45)
26using ProjectErrorMap = ImmutableDictionary<ProjectId, ImmutableArray<DiagnosticData>>;
73private ImmutableArray<DiagnosticData> _lastBuiltResult = ImmutableArray<DiagnosticData>.Empty;
149public ImmutableArray<DiagnosticData> GetBuildErrors()
229await SetLiveErrorsForProjectAsync(projectId, ImmutableArray<DiagnosticData>.Empty, GetApplicableCancellationToken(state)).ConfigureAwait(false);
380private void ReportBuildErrors<T>(T item, Solution solution, ImmutableArray<DiagnosticData> buildErrors)
414public void AddNewErrors(ProjectId projectId, DiagnosticData diagnostic)
428public void AddNewErrors(DocumentId documentId, DiagnosticData diagnostic)
443ProjectId projectId, HashSet<DiagnosticData> projectErrors, Dictionary<DocumentId, HashSet<DiagnosticData>> documentErrorMap)
488private ValueTask SetLiveErrorsForProjectAsync(ProjectId projectId, ImmutableArray<DiagnosticData> diagnostics, CancellationToken cancellationToken)
539private void RaiseDiagnosticsCreated(object? id, Solution solution, ProjectId? projectId, DocumentId? documentId, ImmutableArray<DiagnosticData> items)
561public ValueTask<ImmutableArray<DiagnosticData>> GetDiagnosticsAsync(
564return new ValueTask<ImmutableArray<DiagnosticData>>(ImmutableArray<DiagnosticData>.Empty);
607private readonly Dictionary<ProjectId, Dictionary<DiagnosticData, int>> _projectMap = new();
615private readonly Dictionary<DocumentId, Dictionary<DiagnosticData, int>> _documentMap = new();
703public ImmutableArray<DiagnosticData> GetBuildErrors()
725public (ImmutableArray<DiagnosticData> allLiveErrors, ProjectErrorMap pendingLiveErrorsToSync) GetLiveErrors()
727var allLiveErrorsBuilder = ImmutableArray.CreateBuilder<DiagnosticData>();
728var pendingLiveErrorsToSyncBuilder = ImmutableDictionary.CreateBuilder<ProjectId, ImmutableArray<DiagnosticData>>();
754public ImmutableArray<DiagnosticData> GetLiveErrorsForProject(ProjectId projectId)
759return ImmutableArray<DiagnosticData>.Empty;
764using var _ = ArrayBuilder<DiagnosticData>.GetInstance(out var builder);
776public void AddErrors(DocumentId key, HashSet<DiagnosticData> diagnostics)
779public void AddErrors(ProjectId key, HashSet<DiagnosticData> diagnostics)
782public void AddError(DocumentId key, DiagnosticData diagnostic)
785public void AddError(ProjectId key, DiagnosticData diagnostic)
788private bool IsLive(Project project, DiagnosticData diagnosticData)
816static bool IsDocumentLevelDiagnostic(DiagnosticData diagnosticData)
847static bool IsAdditionalDocumentDiagnostic(Project project, DiagnosticData diagnosticData)
884private void AddErrors<T>(Dictionary<T, Dictionary<DiagnosticData, int>> map, T key, HashSet<DiagnosticData> diagnostics)
888foreach (var diagnostic in diagnostics)
894private void AddError<T>(Dictionary<T, Dictionary<DiagnosticData, int>> map, T key, DiagnosticData diagnostic)
901private void AddError<T>(Dictionary<DiagnosticData, int> errors, DiagnosticData diagnostic, T key)
936private static Dictionary<DiagnosticData, int> GetErrorSet<T>(Dictionary<T, Dictionary<DiagnosticData, int>> map, T key)
938=> map.GetOrAdd(key, _ => new Dictionary<DiagnosticData, int>(DiagnosticDataComparer.Instance));
960private sealed class DiagnosticDataComparer : IEqualityComparer<DiagnosticData>
964public bool Equals(DiagnosticData item1, DiagnosticData item2)
985public int GetHashCode(DiagnosticData obj)
Microsoft.VisualStudio.LanguageServices.UnitTests (47)
Diagnostics\DiagnosticTableDataSourceTests.vb (13)
102provider.Items = New DiagnosticData() {CreateItem(workspace.CurrentSolution, documentId)}
106provider.Items = Array.Empty(Of DiagnosticData)()
695diagnostic1.Properties.AddRange(DiagnosticData.PropertiesForBuildDiagnostic),
719diagnostic2.Properties.AddRange(DiagnosticData.PropertiesForBuildDiagnostic),
765Private Shared Function CreateItem(solution As Solution, documentId As DocumentId, Optional severity As DiagnosticSeverity = DiagnosticSeverity.Error) As DiagnosticData
769Private Shared Function CreateItem(solution As Solution, projectId As ProjectId, documentId As DocumentId, Optional severity As DiagnosticSeverity = DiagnosticSeverity.Error, Optional link As String = Nothing, Optional customTags As String() = Nothing) As DiagnosticData
796Public Items As DiagnosticData()
798Public Sub New(ParamArray items As DiagnosticData())
804Public Function GetDiagnosticsAsync(workspace As Workspace, projectId As ProjectId, documentId As DocumentId, id As Object, includeSuppressedDiagnostics As Boolean, cancellationToken As CancellationToken) As ValueTask(Of ImmutableArray(Of DiagnosticData)) Implements IDiagnosticService.GetDiagnosticsAsync
805Return New ValueTask(Of ImmutableArray(Of DiagnosticData))(GetDiagnostics(workspace, projectId, documentId, includeSuppressedDiagnostics))
812includeSuppressedDiagnostics As Boolean) As ImmutableArray(Of DiagnosticData)
815Dim diagnostics As ImmutableArray(Of DiagnosticData)
872Public Sub RaiseDiagnosticsUpdated(workspace As Workspace, ParamArray items As DiagnosticData())
Diagnostics\ExternalDiagnosticUpdateSourceTests.vb (32)
130Dim map = New Dictionary(Of DocumentId, HashSet(Of DiagnosticData))()
131map.Add(project.DocumentIds.First(), New HashSet(Of DiagnosticData)(
134source.AddNewErrors(project.Id, New HashSet(Of DiagnosticData)(SpecializedCollections.SingletonEnumerable(diagnostic)), map)
170Dim map = New Dictionary(Of DocumentId, HashSet(Of DiagnosticData))()
171map.Add(project.DocumentIds.First(), New HashSet(Of DiagnosticData)(
174source.AddNewErrors(project.Id, New HashSet(Of DiagnosticData)(SpecializedCollections.SingletonEnumerable(diagnostic)), map)
191Assert.Equal(1, DiagnosticData.PropertiesForBuildDiagnostic.Count)
194Assert.True(DiagnosticData.PropertiesForBuildDiagnostic.TryGetValue(WellKnownDiagnosticPropertyNames.Origin, value))
215properties:=DiagnosticData.PropertiesForBuildDiagnostic,
467properties:=DiagnosticData.PropertiesForBuildDiagnostic,
522properties:=DiagnosticData.PropertiesForBuildDiagnostic,
528Dim actualDiagnostic As DiagnosticData = Nothing
618Private Shared Function GetDiagnosticData(projectId As ProjectId, Optional id As String = "id") As DiagnosticData
630properties:=DiagnosticData.PropertiesForBuildDiagnostic,
637Private ReadOnly _data As ImmutableArray(Of DiagnosticData)
642Public Sub New(globalOptions As IGlobalOptionService, Optional data As ImmutableArray(Of DiagnosticData) = Nothing)
663Public Function GetDiagnosticsAsync(workspace As Workspace, projectId As ProjectId, documentId As DocumentId, id As Object, includeSuppressedDiagnostics As Boolean, cancellationToken As CancellationToken) As ValueTask(Of ImmutableArray(Of DiagnosticData)) Implements IDiagnosticUpdateSource.GetDiagnosticsAsync
664Return New ValueTask(Of ImmutableArray(Of DiagnosticData))(If(includeSuppressedDiagnostics, _data, _data.WhereAsArray(Function(d) Not d.IsSuppressed)))
670Public Function GetDiagnosticsForSpanAsync(document As TextDocument, range As TextSpan?, shouldIncludeDiagnostic As Func(Of String, Boolean), includeCompilerDiagnostics As Boolean, Optional includeSuppressedDiagnostics As Boolean = False, Optional priority As CodeActionRequestPriority = CodeActionRequestPriority.None, Optional addOperationScope As Func(Of String, IDisposable) = Nothing, Optional diagnosticKinds As DiagnosticKind = DiagnosticKind.All, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ImmutableArray(Of DiagnosticData)) Implements IDiagnosticAnalyzerService.GetDiagnosticsForSpanAsync
671Return SpecializedTasks.EmptyImmutableArray(Of DiagnosticData)
674Public Function GetSpecificCachedDiagnosticsAsync(workspace As Workspace, id As Object, Optional includeSuppressedDiagnostics As Boolean = False, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ImmutableArray(Of DiagnosticData)) Implements IDiagnosticAnalyzerService.GetSpecificCachedDiagnosticsAsync
675Return SpecializedTasks.EmptyImmutableArray(Of DiagnosticData)()
678Public Function GetCachedDiagnosticsAsync(workspace As Workspace, Optional projectId As ProjectId = Nothing, Optional documentId As DocumentId = Nothing, Optional includeSuppressedDiagnostics As Boolean = False, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ImmutableArray(Of DiagnosticData)) Implements IDiagnosticAnalyzerService.GetCachedDiagnosticsAsync
679Return SpecializedTasks.EmptyImmutableArray(Of DiagnosticData)()
682Public Function GetDiagnosticsAsync(solution As Solution, Optional projectId As ProjectId = Nothing, Optional documentId As DocumentId = Nothing, Optional includeSuppressedDiagnostics As Boolean = False, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ImmutableArray(Of DiagnosticData)) Implements IDiagnosticAnalyzerService.GetDiagnosticsAsync
683Return SpecializedTasks.EmptyImmutableArray(Of DiagnosticData)()
686Public Function GetDiagnosticsForIdsAsync(solution As Solution, Optional projectId As ProjectId = Nothing, Optional documentId As DocumentId = Nothing, Optional diagnosticIds As ImmutableHashSet(Of String) = Nothing, Optional includeSuppressedDiagnostics As Boolean = False, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ImmutableArray(Of DiagnosticData)) Implements IDiagnosticAnalyzerService.GetDiagnosticsForIdsAsync
687Return SpecializedTasks.EmptyImmutableArray(Of DiagnosticData)()
690Public Function GetProjectDiagnosticsForIdsAsync(solution As Solution, Optional projectId As ProjectId = Nothing, Optional diagnosticIds As ImmutableHashSet(Of String) = Nothing, Optional includeSuppressedDiagnostics As Boolean = False, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ImmutableArray(Of DiagnosticData)) Implements IDiagnosticAnalyzerService.GetProjectDiagnosticsForIdsAsync
691Return SpecializedTasks.EmptyImmutableArray(Of DiagnosticData)()
702Public Function TryGetDiagnosticsForSpanAsync(document As TextDocument, range As TextSpan, shouldIncludeDiagnostic As Func(Of String, Boolean), Optional includeSuppressedDiagnostics As Boolean = False, Optional priority As CodeActionRequestPriority = CodeActionRequestPriority.None, Optional diagnosticKinds As DiagnosticKind = DiagnosticKind.All, Optional cancellationToken As CancellationToken = Nothing) As Task(Of (diagnostics As ImmutableArray(Of DiagnosticData), upToDate As Boolean)) Implements IDiagnosticAnalyzerService.TryGetDiagnosticsForSpanAsync
703Return Task.FromResult((ImmutableArray(Of DiagnosticData).Empty, False))