From 55dbf3949db9004465607eeb152107e76908cfa9 Mon Sep 17 00:00:00 2001 From: gohome001 <3156514693@qq.com> Date: Tue, 11 Feb 2025 15:24:46 +0800 Subject: [PATCH 1/2] don't emit implicit drop inlay hints for macro --- crates/ide/src/inlay_hints/implicit_drop.rs | 5 +++-- 1 file changed, 3 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..8c91958d8c 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(), From 42f11d49ee57766639d9c284cb2db45bfb97fd96 Mon Sep 17 00:00:00 2001 From: gohome001 <3156514693@qq.com> Date: Tue, 11 Feb 2025 15:27:34 +0800 Subject: [PATCH 2/2] add test case for ignoring inlay hint for macro call --- crates/ide/src/inlay_hints/implicit_drop.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/crates/ide/src/inlay_hints/implicit_drop.rs b/crates/ide/src/inlay_hints/implicit_drop.rs index 8c91958d8c..58dc0fdf62 100644 --- a/crates/ide/src/inlay_hints/implicit_drop.rs +++ b/crates/ide/src/inlay_hints/implicit_drop.rs @@ -229,6 +229,27 @@ mod tests { //^ drop(y) } //^ drop(x) +"#, + ); + } + + #[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!() + } "#, ); }