aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api/src/call_info.rs
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2019-11-26 13:18:03 +0000
committerGitHub <[email protected]>2019-11-26 13:18:03 +0000
commit4822d26540a2eb13505604f2285198ff8fb69fbc (patch)
tree89d0c72996be70f99835f500cec24a8f80165a36 /crates/ra_ide_api/src/call_info.rs
parent36dca8de93c07be62724f973aa4c8a045941d218 (diff)
parent0623164c1d1ec461570c7d3d330d7c90fb00cf6e (diff)
Merge #2406
2406: Add hygiene information to SourceAnalyzer r=matklad a=edwin0cheng This should fix https://github.com/rust-analyzer/rust-analyzer/pull/2392#issuecomment-557964686 Co-authored-by: Edwin Cheng <[email protected]>
Diffstat (limited to 'crates/ra_ide_api/src/call_info.rs')
-rw-r--r--crates/ra_ide_api/src/call_info.rs9
1 files changed, 3 insertions, 6 deletions
diff --git a/crates/ra_ide_api/src/call_info.rs b/crates/ra_ide_api/src/call_info.rs
index d0283e410..d559dc4d0 100644
--- a/crates/ra_ide_api/src/call_info.rs
+++ b/crates/ra_ide_api/src/call_info.rs
@@ -18,12 +18,9 @@ pub(crate) fn call_info(db: &RootDatabase, position: FilePosition) -> Option<Cal
18 // Find the calling expression and it's NameRef 18 // Find the calling expression and it's NameRef
19 let calling_node = FnCallNode::with_node(&syntax, position.offset)?; 19 let calling_node = FnCallNode::with_node(&syntax, position.offset)?;
20 let name_ref = calling_node.name_ref()?; 20 let name_ref = calling_node.name_ref()?;
21 let name_ref = hir::Source::new(position.file_id.into(), name_ref.syntax());
21 22
22 let analyzer = hir::SourceAnalyzer::new( 23 let analyzer = hir::SourceAnalyzer::new(db, name_ref, None);
23 db,
24 hir::Source::new(position.file_id.into(), name_ref.syntax()),
25 None,
26 );
27 let (mut call_info, has_self) = match &calling_node { 24 let (mut call_info, has_self) = match &calling_node {
28 FnCallNode::CallExpr(expr) => { 25 FnCallNode::CallExpr(expr) => {
29 //FIXME: Type::as_callable is broken 26 //FIXME: Type::as_callable is broken
@@ -44,7 +41,7 @@ pub(crate) fn call_info(db: &RootDatabase, position: FilePosition) -> Option<Cal
44 (CallInfo::with_fn(db, function), function.has_self_param(db)) 41 (CallInfo::with_fn(db, function), function.has_self_param(db))
45 } 42 }
46 FnCallNode::MacroCallExpr(expr) => { 43 FnCallNode::MacroCallExpr(expr) => {
47 let macro_def = analyzer.resolve_macro_call(db, &expr)?; 44 let macro_def = analyzer.resolve_macro_call(db, name_ref.with_value(&expr))?;
48 (CallInfo::with_macro(db, macro_def)?, false) 45 (CallInfo::with_macro(db, macro_def)?, false)
49 } 46 }
50 }; 47 };