Unnamed repository; edit this file 'description' to name the repository.
Merge pull request #19117 from gohome001/implicit-drop-inlay-hints-bug
Fix: don't emit implicit drop inlay hints for macro
Chayim Refael Friedman 2025-02-11
parent 78e7515 · parent 42f11d4 · commit 8aa4ae5
-rw-r--r--crates/ide/src/inlay_hints/implicit_drop.rs26
1 files changed, 24 insertions, 2 deletions
diff --git a/crates/ide/src/inlay_hints/implicit_drop.rs b/crates/ide/src/inlay_hints/implicit_drop.rs
index 27c7c3d498..58dc0fdf62 100644
--- a/crates/ide/src/inlay_hints/implicit_drop.rs
+++ b/crates/ide/src/inlay_hints/implicit_drop.rs
@@ -54,7 +54,8 @@ pub(super) fn hints(
};
let range = match terminator.span {
MirSpan::ExprId(e) => match source_map.expr_syntax(e) {
- Ok(s) => {
+ // don't show inlay hint for macro
+ Ok(s) if !s.file_id.is_macro() => {
let root = &s.file_syntax(sema.db);
let expr = s.value.to_node(root);
let expr = expr.syntax();
@@ -69,7 +70,7 @@ pub(super) fn hints(
}
}
}
- Err(_) => continue,
+ _ => continue,
},
MirSpan::PatId(p) => match source_map.pat_syntax(p) {
Ok(s) => s.value.text_range(),
@@ -231,4 +232,25 @@ mod tests {
"#,
);
}
+
+ #[test]
+ fn ignore_inlay_hint_for_macro_call() {
+ check_with_config(
+ ONLY_DROP_CONFIG,
+ r#"
+ struct X;
+
+ macro_rules! my_macro {
+ () => {{
+ let bbb = X;
+ bbb
+ }};
+ }
+
+ fn test() -> X {
+ my_macro!()
+ }
+"#,
+ );
+ }
}