diff --git a/src/LanguageServer/Protocol/Features/Diagnostics/EngineV2/DiagnosticIncrementalAnalyzer_IncrementalAnalyzer.cs b/src/LanguageServer/Protocol/Features/Diagnostics/EngineV2/DiagnosticIncrementalAnalyzer_IncrementalAnalyzer.cs index 99147ea7972d1..5cf2bfc87a966 100644 --- a/src/LanguageServer/Protocol/Features/Diagnostics/EngineV2/DiagnosticIncrementalAnalyzer_IncrementalAnalyzer.cs +++ b/src/LanguageServer/Protocol/Features/Diagnostics/EngineV2/DiagnosticIncrementalAnalyzer_IncrementalAnalyzer.cs @@ -38,8 +38,8 @@ public async Task> ForceAnalyzeProjectAsync(Proje // Try to add the new computed data to the CWT. But use any existing value that another thread // might have beaten us to storing in it. #if NET - _projectToForceAnalysisData.TryAdd(project, box); - Contract.ThrowIfFalse(_projectToForceAnalysisData.TryGetValue(project, out box)); + if (!_projectToForceAnalysisData.TryAdd(project, box)) + Contract.ThrowIfFalse(_projectToForceAnalysisData.TryGetValue(project, out box)); #else box = _projectToForceAnalysisData.GetValue(project, _ => box); #endif