about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--crates/ide/src/inlay_hints/adjustment.rs20
1 files changed, 20 insertions, 0 deletions
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 };
+}
+            "#,
+        )
+    }
 }