From 2a21b939c432e4b5a186df780a1e97d20ff53120 Mon Sep 17 00:00:00 2001 From: Philipp Mildenberger Date: Tue, 28 Mar 2023 04:15:03 +0200 Subject: [PATCH] Fix crash with filtered diagnostics in gutter (e.g. when diagnostics aren't visible) --- helix-view/src/gutter.rs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/helix-view/src/gutter.rs b/helix-view/src/gutter.rs index 8c8abcc3..475ec5a3 100644 --- a/helix-view/src/gutter.rs +++ b/helix-view/src/gutter.rs @@ -83,16 +83,15 @@ pub fn diagnostic<'doc>( let diagnostics_on_line = after.chain(before); - // This unwrap is safe because the iterator cannot be empty as it contains at least the item found by the binary search. - let diagnostic = diagnostics_on_line.max_by_key(|d| d.severity).unwrap(); - - write!(out, "●").unwrap(); - return Some(match diagnostic.severity { - Some(Severity::Error) => error, - Some(Severity::Warning) | None => warning, - Some(Severity::Info) => info, - Some(Severity::Hint) => hint, - }); + if let Some(diagnostic) = diagnostics_on_line.max_by_key(|d| d.severity) { + write!(out, "●").ok(); + return Some(match diagnostic.severity { + Some(Severity::Error) => error, + Some(Severity::Warning) | None => warning, + Some(Severity::Info) => info, + Some(Severity::Hint) => hint, + }); + } } None },