diff --git a/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs b/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs index aaa77fe1c..5b0d81875 100644 --- a/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs +++ b/src/PowerShellEditorServices/Services/Analysis/AnalysisService.cs @@ -235,7 +235,7 @@ public async Task>> Ge /// /// The file to clear markers in. /// A task that ends when all markers in the file have been cleared. - public void ClearMarkers(ScriptFile file) => PublishScriptDiagnostics(file, Array.Empty()); + public void ClearMarkers(ScriptFile file) => PublishScriptDiagnostics(file, new List()); /// /// Event subscription method to be run when PSES configuration has been updated. @@ -384,8 +384,11 @@ internal async Task DelayThenInvokeDiagnosticsAsync(ScriptFile[] filesToAnalyze, private void PublishScriptDiagnostics(ScriptFile scriptFile) => PublishScriptDiagnostics(scriptFile, scriptFile.DiagnosticMarkers); - private void PublishScriptDiagnostics(ScriptFile scriptFile, IReadOnlyList markers) + private void PublishScriptDiagnostics(ScriptFile scriptFile, List markers) { + // NOTE: Sometimes we have null markers for reasons we don't yet know, but we need to + // remove them. + _ = markers.RemoveAll(m => m is null); Diagnostic[] diagnostics = new Diagnostic[markers.Count]; CorrectionTableEntry fileCorrections = _mostRecentCorrectionsByFile.GetOrAdd(