Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/signature_help.rs')
| -rw-r--r-- | crates/ide/src/signature_help.rs | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/crates/ide/src/signature_help.rs b/crates/ide/src/signature_help.rs index bd14f830dd..e9a547898e 100644 --- a/crates/ide/src/signature_help.rs +++ b/crates/ide/src/signature_help.rs @@ -9,7 +9,7 @@ use hir::{ }; use ide_db::{ FilePosition, FxIndexMap, - active_parameter::{callable_for_node, generic_def_for_node}, + active_parameter::{callable_for_arg_list, generic_def_for_node}, documentation::{Documentation, HasDocs}, }; use span::Edition; @@ -17,7 +17,7 @@ use stdx::format_to; use syntax::{ AstNode, Direction, NodeOrToken, SyntaxElementChildren, SyntaxNode, SyntaxToken, T, TextRange, TextSize, ToSmolStr, algo, - ast::{self, AstChildren, HasArgList}, + ast::{self, AstChildren}, match_ast, }; @@ -163,20 +163,8 @@ fn signature_help_for_call( edition: Edition, display_target: DisplayTarget, ) -> Option<SignatureHelp> { - // Find the calling expression and its NameRef - let mut nodes = arg_list.syntax().ancestors().skip(1); - let calling_node = loop { - if let Some(callable) = ast::CallableExpr::cast(nodes.next()?) { - let inside_callable = callable - .arg_list() - .is_some_and(|it| it.syntax().text_range().contains(token.text_range().start())); - if inside_callable { - break callable; - } - } - }; - - let (callable, active_parameter) = callable_for_node(sema, &calling_node, &token)?; + let (callable, active_parameter) = + callable_for_arg_list(sema, arg_list, token.text_range().start())?; let mut res = SignatureHelp { doc: None, signature: String::new(), parameters: vec![], active_parameter }; |