diff --git a/crates/diagnostics/src/diagnostics.rs b/crates/diagnostics/src/diagnostics.rs index 4d81629723..4b8c943dd0 100644 --- a/crates/diagnostics/src/diagnostics.rs +++ b/crates/diagnostics/src/diagnostics.rs @@ -867,10 +867,12 @@ fn compare_diagnostics( snapshot: &language::BufferSnapshot, ) -> Ordering { use language::ToOffset; - // The old diagnostics may point to a previously open Buffer for this file. - if !old.range.start.is_valid(snapshot) { + + // The diagnostics may point to a previously open Buffer for this file. + if !old.range.start.is_valid(snapshot) || !new.range.start.is_valid(snapshot) { return Ordering::Greater; } + old.range .start .to_offset(snapshot)