From d1762680c6f67e32991e7320b4c24b00c819cbc9 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Wed, 5 Feb 2025 09:47:24 -0800 Subject: [PATCH] Remove unnecessary async from diagnostics subsystem --- ...gnosticIncrementalAnalyzer.ProjectState.cs | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/LanguageServer/Protocol/Features/Diagnostics/EngineV2/DiagnosticIncrementalAnalyzer.ProjectState.cs b/src/LanguageServer/Protocol/Features/Diagnostics/EngineV2/DiagnosticIncrementalAnalyzer.ProjectState.cs index 9426acc708ac8..f96154fd1b3d1 100644 --- a/src/LanguageServer/Protocol/Features/Diagnostics/EngineV2/DiagnosticIncrementalAnalyzer.ProjectState.cs +++ b/src/LanguageServer/Protocol/Features/Diagnostics/EngineV2/DiagnosticIncrementalAnalyzer.ProjectState.cs @@ -91,7 +91,7 @@ public async Task GetAnalysisDataAsync(Project project if (document == null) continue; - if (!await TryGetDiagnosticsFromInMemoryStorageAsync(serializerVersion, document, builder, cancellationToken).ConfigureAwait(false)) + if (!TryGetDiagnosticsFromInMemoryStorage(serializerVersion, document, builder, cancellationToken)) { Debug.Assert(lastResult.Version == VersionStamp.Default); @@ -101,7 +101,7 @@ public async Task GetAnalysisDataAsync(Project project } } - if (!await TryGetProjectDiagnosticsFromInMemoryStorageAsync(serializerVersion, project, builder, cancellationToken).ConfigureAwait(false)) + if (!TryGetProjectDiagnosticsFromInMemoryStorage(serializerVersion, project, builder, cancellationToken)) { // this can happen if SaveAsync is not yet called but active file merge happened. one of case is if user did build before the very first // analysis happened. @@ -136,7 +136,7 @@ public async Task GetAnalysisDataAsync(TextDocument do var serializerVersion = lastResult.Version; var builder = new Builder(document.Project, lastResult.Version); - if (!await TryGetDiagnosticsFromInMemoryStorageAsync(serializerVersion, document, builder, cancellationToken).ConfigureAwait(false)) + if (!TryGetDiagnosticsFromInMemoryStorage(serializerVersion, document, builder, cancellationToken)) { Debug.Assert(lastResult.Version == VersionStamp.Default); @@ -177,7 +177,7 @@ public async Task GetProjectAnalysisDataAsync(Project var serializerVersion = lastResult.Version; var builder = new Builder(project, lastResult.Version); - if (!await TryGetProjectDiagnosticsFromInMemoryStorageAsync(serializerVersion, project, builder, cancellationToken).ConfigureAwait(false)) + if (!TryGetProjectDiagnosticsFromInMemoryStorage(serializerVersion, project, builder, cancellationToken)) { // this can happen if SaveAsync is not yet called but active file merge happened. one of case is if user did build before the very first // analysis happened. @@ -246,11 +246,11 @@ private async Task LoadInitialAnalysisDataAsync(Projec { cancellationToken.ThrowIfCancellationRequested(); - if (!await TryGetDiagnosticsFromInMemoryStorageAsync(serializerVersion, document, builder, cancellationToken).ConfigureAwait(false)) + if (!TryGetDiagnosticsFromInMemoryStorage(serializerVersion, document, builder, cancellationToken)) continue; } - if (!await TryGetProjectDiagnosticsFromInMemoryStorageAsync(serializerVersion, project, builder, cancellationToken).ConfigureAwait(false)) + if (!TryGetProjectDiagnosticsFromInMemoryStorage(serializerVersion, project, builder, cancellationToken)) return DiagnosticAnalysisResult.CreateEmpty(project.Id, VersionStamp.Default); return builder.ToResult(); @@ -265,7 +265,7 @@ private async Task LoadInitialAnalysisDataAsync(TextDo var serializerVersion = version; var builder = new Builder(project, version); - if (!await TryGetDiagnosticsFromInMemoryStorageAsync(serializerVersion, document, builder, cancellationToken).ConfigureAwait(false)) + if (!TryGetDiagnosticsFromInMemoryStorage(serializerVersion, document, builder, cancellationToken)) { return DiagnosticAnalysisResult.CreateEmpty(project.Id, VersionStamp.Default); } @@ -280,7 +280,7 @@ private async Task LoadInitialProjectAnalysisDataAsync var serializerVersion = version; var builder = new Builder(project, version); - if (!await TryGetProjectDiagnosticsFromInMemoryStorageAsync(serializerVersion, project, builder, cancellationToken).ConfigureAwait(false)) + if (!TryGetProjectDiagnosticsFromInMemoryStorage(serializerVersion, project, builder, cancellationToken)) return DiagnosticAnalysisResult.CreateEmpty(project.Id, VersionStamp.Default); return builder.ToResult(); @@ -292,13 +292,13 @@ private void AddToInMemoryStorage( InMemoryStorage.Cache(_owner.Analyzer, (key, stateKey), new CacheEntry(serializerVersion, diagnostics)); } - private async ValueTask TryGetDiagnosticsFromInMemoryStorageAsync(VersionStamp serializerVersion, TextDocument document, Builder builder, CancellationToken cancellationToken) + private bool TryGetDiagnosticsFromInMemoryStorage(VersionStamp serializerVersion, TextDocument document, Builder builder, CancellationToken cancellationToken) { var success = true; var project = document.Project; var documentId = document.Id; - var diagnostics = await GetDiagnosticsFromInMemoryStorageAsync(serializerVersion, new(documentId), SyntaxStateName, cancellationToken).ConfigureAwait(false); + var diagnostics = GetDiagnosticsFromInMemoryStorage(serializerVersion, new(documentId), SyntaxStateName, cancellationToken); if (!diagnostics.IsDefault) { builder.AddSyntaxLocals(documentId, diagnostics); @@ -308,7 +308,7 @@ private async ValueTask TryGetDiagnosticsFromInMemoryStorageAsync(VersionS success = false; } - diagnostics = await GetDiagnosticsFromInMemoryStorageAsync(serializerVersion, new(documentId), SemanticStateName, cancellationToken).ConfigureAwait(false); + diagnostics = GetDiagnosticsFromInMemoryStorage(serializerVersion, new(documentId), SemanticStateName, cancellationToken); if (!diagnostics.IsDefault) { builder.AddSemanticLocals(documentId, diagnostics); @@ -318,7 +318,7 @@ private async ValueTask TryGetDiagnosticsFromInMemoryStorageAsync(VersionS success = false; } - diagnostics = await GetDiagnosticsFromInMemoryStorageAsync(serializerVersion, new(documentId), NonLocalStateName, cancellationToken).ConfigureAwait(false); + diagnostics = GetDiagnosticsFromInMemoryStorage(serializerVersion, new(documentId), NonLocalStateName, cancellationToken); if (!diagnostics.IsDefault) { builder.AddNonLocals(documentId, diagnostics); @@ -331,9 +331,9 @@ private async ValueTask TryGetDiagnosticsFromInMemoryStorageAsync(VersionS return success; } - private async ValueTask TryGetProjectDiagnosticsFromInMemoryStorageAsync(VersionStamp serializerVersion, Project project, Builder builder, CancellationToken cancellationToken) + private bool TryGetProjectDiagnosticsFromInMemoryStorage(VersionStamp serializerVersion, Project project, Builder builder, CancellationToken cancellationToken) { - var diagnostics = await GetDiagnosticsFromInMemoryStorageAsync(serializerVersion, new(project.Id), NonLocalStateName, cancellationToken).ConfigureAwait(false); + var diagnostics = GetDiagnosticsFromInMemoryStorage(serializerVersion, new(project.Id), NonLocalStateName, cancellationToken); if (!diagnostics.IsDefault) { builder.AddOthers(diagnostics); @@ -343,11 +343,11 @@ private async ValueTask TryGetProjectDiagnosticsFromInMemoryStorageAsync(V return false; } - private ValueTask> GetDiagnosticsFromInMemoryStorageAsync( + private ImmutableArray GetDiagnosticsFromInMemoryStorage( VersionStamp serializerVersion, ProjectOrDocumentId key, string stateKey, CancellationToken _) { return InMemoryStorage.TryGetValue(_owner.Analyzer, (key, stateKey), out var entry) && serializerVersion == entry.Version - ? new(entry.Diagnostics) + ? entry.Diagnostics : default; }