diff --git a/crates/ide/src/inlay_hints/adjustment.rs b/crates/ide/src/inlay_hints/adjustment.rs index 52cfa452b97..b2bec10d05d 100644 --- a/crates/ide/src/inlay_hints/adjustment.rs +++ b/crates/ide/src/inlay_hints/adjustment.rs @@ -59,6 +59,10 @@ pub(super) fn hints( }); } for adjustment in adjustments.into_iter().rev() { + if adjustment.source == adjustment.target { + continue; + } + // FIXME: Add some nicer tooltips to each of these let text = match adjustment.kind { Adjust::NeverToAny if config.adjustment_hints == AdjustmentHints::Always => { @@ -213,4 +217,20 @@ impl Trait for Struct {} "#, ) } + + #[test] + fn never_to_never_is_never_shown() { + check_with_config( + InlayHintsConfig { adjustment_hints: AdjustmentHints::Always, ..DISABLED_CONFIG }, + r#" +fn never() -> ! { + return loop {}; +} + +fn or_else() { + let () = () else { return }; +} + "#, + ) + } }