From f5a81ec4683613bd62624811733345d627f2127b Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sat, 30 Jan 2021 18:19:21 +0300 Subject: Upgrade rowan Notably, new rowan comes with support for mutable syntax trees. --- crates/ide/src/call_hierarchy.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'crates/ide/src/call_hierarchy.rs') diff --git a/crates/ide/src/call_hierarchy.rs b/crates/ide/src/call_hierarchy.rs index b848945d7..96021f677 100644 --- a/crates/ide/src/call_hierarchy.rs +++ b/crates/ide/src/call_hierarchy.rs @@ -53,10 +53,8 @@ pub(crate) fn incoming_calls(db: &RootDatabase, position: FilePosition) -> Optio for (r_range, _) in references { let token = file.token_at_offset(r_range.start()).next()?; let token = sema.descend_into_macros(token); - let syntax = token.parent(); - // This target is the containing function - if let Some(nav) = syntax.ancestors().find_map(|node| { + if let Some(nav) = token.ancestors().find_map(|node| { let fn_ = ast::Fn::cast(node)?; let def = sema.to_def(&fn_)?; def.try_to_nav(sema.db) @@ -77,12 +75,13 @@ pub(crate) fn outgoing_calls(db: &RootDatabase, position: FilePosition) -> Optio let file = file.syntax(); let token = file.token_at_offset(position.offset).next()?; let token = sema.descend_into_macros(token); - let syntax = token.parent(); let mut calls = CallLocations::default(); - syntax - .descendants() + token + .parent() + .into_iter() + .flat_map(|it| it.descendants()) .filter_map(|node| FnCallNode::with_node_exact(&node)) .filter_map(|call_node| { let name_ref = call_node.name_ref()?; -- cgit v1.2.3