Skip to content

Commit 1234fac

Browse files
committed
internal: fix a panic in diagnostics when the crate graph isn't yet populated
1 parent 3fc655b commit 1234fac

File tree

1 file changed

+11
-3
lines changed
  • crates/ide-diagnostics/src

1 file changed

+11
-3
lines changed

crates/ide-diagnostics/src/lib.rs

+11-3
Original file line numberDiff line numberDiff line change
@@ -389,9 +389,17 @@ pub fn semantic_diagnostics(
389389
module.and_then(|m| db.toolchain_channel(m.krate().into())),
390390
Some(ReleaseChannel::Nightly) | None
391391
);
392-
let krate = module
393-
.map(|module| module.krate())
394-
.unwrap_or_else(|| (*db.all_crates().last().unwrap()).into());
392+
393+
let krate = match module {
394+
Some(module) => module.krate(),
395+
None => {
396+
match db.all_crates().last() {
397+
Some(last) => (*last).into(),
398+
// short-circuit, return an empty vec of diagnostics
399+
None => return vec![],
400+
}
401+
}
402+
};
395403
let display_target = krate.to_display_target(db);
396404
let ctx = DiagnosticsContext { config, sema, resolve, edition, is_nightly, display_target };
397405

0 commit comments

Comments
 (0)