Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/inlay_hints/lifetime.rs')
-rw-r--r--crates/ide/src/inlay_hints/lifetime.rs20
1 files changed, 19 insertions, 1 deletions
diff --git a/crates/ide/src/inlay_hints/lifetime.rs b/crates/ide/src/inlay_hints/lifetime.rs
index 653e3a6ef1..2163c959b1 100644
--- a/crates/ide/src/inlay_hints/lifetime.rs
+++ b/crates/ide/src/inlay_hints/lifetime.rs
@@ -389,7 +389,9 @@ fn hints_(
}
(None, allocated_lifetimes) => on_missing_gpl(acc, allocated_lifetimes),
}
- ctx.lifetime_stacks.last_mut().unwrap().extend(allocated_lifetimes);
+ if let Some(stack) = ctx.lifetime_stacks.last_mut() {
+ stack.extend(allocated_lifetimes);
+ }
Some(())
}
@@ -545,4 +547,20 @@ fn fn_trait(a: &impl Fn(&()) -> &()) {}
"#,
);
}
+
+ #[test]
+ fn hints_in_non_gen_defs() {
+ check_with_config(
+ InlayHintsConfig {
+ lifetime_elision_hints: LifetimeElisionHints::Always,
+ ..TEST_CONFIG
+ },
+ r#"
+const _: fn(&()) -> &();
+ //^^ for<'0>
+ //^'0
+ //^'0
+"#,
+ );
+ }
}