diff --git a/src/tools/rust-analyzer/crates/hir-expand/src/lib.rs b/src/tools/rust-analyzer/crates/hir-expand/src/lib.rs index ec0716c5fa3..a7150cf3087 100644 --- a/src/tools/rust-analyzer/crates/hir-expand/src/lib.rs +++ b/src/tools/rust-analyzer/crates/hir-expand/src/lib.rs @@ -710,8 +710,8 @@ impl ExpansionInfo { self.expanded.clone() } - pub fn call_node(&self) -> InFile> { - self.arg.with_value(self.arg.value.as_ref().and_then(SyntaxNode::parent)) + pub fn arg(&self) -> InFile> { + self.arg.as_ref().map(|it| it.as_ref()) } pub fn call_file(&self) -> HirFileId { diff --git a/src/tools/rust-analyzer/crates/hir/src/semantics.rs b/src/tools/rust-analyzer/crates/hir/src/semantics.rs index 2618ea3decc..f6c88edbff7 100644 --- a/src/tools/rust-analyzer/crates/hir/src/semantics.rs +++ b/src/tools/rust-analyzer/crates/hir/src/semantics.rs @@ -772,7 +772,7 @@ impl<'db> SemanticsImpl<'db> { let exp_info = macro_file.expansion_info(self.db.upcast()); let InMacroFile { file_id, value } = exp_info.expanded(); - if let InFile { file_id, value: Some(value) } = exp_info.call_node() { + if let InFile { file_id, value: Some(value) } = exp_info.arg() { self.cache(value.ancestors().last().unwrap(), file_id); } self.cache(value, file_id.into()); @@ -786,7 +786,7 @@ impl<'db> SemanticsImpl<'db> { // FIXME: uncached parse // Create the source analyzer for the macro call scope let Some(sa) = expansion_info - .call_node() + .arg() .value .and_then(|it| self.analyze_no_infer(&it.ancestors().last().unwrap())) else { @@ -1145,7 +1145,7 @@ impl<'db> SemanticsImpl<'db> { .expansion_info_cache .entry(macro_file) .or_insert_with(|| macro_file.expansion_info(self.db.upcast())); - expansion_info.call_node().transpose() + expansion_info.arg().map(|node| node?.parent()).transpose() }) } } diff --git a/src/tools/rust-analyzer/crates/hir/src/semantics/source_to_def.rs b/src/tools/rust-analyzer/crates/hir/src/semantics/source_to_def.rs index df17a357348..74ed2640f40 100644 --- a/src/tools/rust-analyzer/crates/hir/src/semantics/source_to_def.rs +++ b/src/tools/rust-analyzer/crates/hir/src/semantics/source_to_def.rs @@ -434,7 +434,7 @@ impl SourceToDefCtx<'_, '_> { .entry(macro_file) .or_insert_with(|| macro_file.expansion_info(this.db.upcast())); - expansion_info.call_node().map(|node| node?.parent()).transpose() + expansion_info.arg().map(|node| node?.parent()).transpose() } }; let mut node = node.cloned();