diff options
| author | roife <roifewu@gmail.com> | 2024-02-26 20:23:36 +0800 |
|---|---|---|
| committer | roife <roifewu@gmail.com> | 2024-02-26 20:23:36 +0800 |
| commit | 36298c622e93f562c8f6c0143730d4becb64d751 (patch) | |
| tree | 932c4093db3e4a83028323b7ed22aecfa720dd86 | |
| parent | 8929853df7ddae47e63aa3a261f5f99de8130f32 (diff) | |
| download | rust-36298c622e93f562c8f6c0143730d4becb64d751.tar.gz rust-36298c622e93f562c8f6c0143730d4becb64d751.zip | |
fix:do not handle callsites in macros' parameters
| -rw-r--r-- | crates/ide-assists/src/handlers/inline_call.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/crates/ide-assists/src/handlers/inline_call.rs b/crates/ide-assists/src/handlers/inline_call.rs index 11b22b65205..fd042edb12a 100644 --- a/crates/ide-assists/src/handlers/inline_call.rs +++ b/crates/ide-assists/src/handlers/inline_call.rs @@ -107,6 +107,9 @@ pub(crate) fn inline_into_callers(acc: &mut Assists, ctx: &AssistContext<'_>) -> let call_infos: Vec<_> = name_refs .into_iter() .filter_map(CallInfo::from_name_ref) + // FIXME: do not handle callsites in macros' parameters, because + // directly inlining into macros may cause errors. + .filter(|call_info| !ctx.sema.hir_file_for(call_info.node.syntax()).is_macro()) .map(|call_info| { let mut_node = builder.make_syntax_mut(call_info.node.syntax().clone()); (call_info, mut_node) |
