aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api/src/completion/complete_fn_param.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_ide_api/src/completion/complete_fn_param.rs')
-rw-r--r--crates/ra_ide_api/src/completion/complete_fn_param.rs18
1 files changed, 10 insertions, 8 deletions
diff --git a/crates/ra_ide_api/src/completion/complete_fn_param.rs b/crates/ra_ide_api/src/completion/complete_fn_param.rs
index 6639b6fff..3e936e3ec 100644
--- a/crates/ra_ide_api/src/completion/complete_fn_param.rs
+++ b/crates/ra_ide_api/src/completion/complete_fn_param.rs
@@ -1,7 +1,6 @@
1use ra_syntax::{ 1//! FIXME: write short doc here
2 algo::visit::{visitor_ctx, VisitorCtx}, 2
3 ast, AstNode, 3use ra_syntax::{ast, match_ast, AstNode};
4};
5use rustc_hash::FxHashMap; 4use rustc_hash::FxHashMap;
6 5
7use crate::completion::{CompletionContext, CompletionItem, CompletionKind, Completions}; 6use crate::completion::{CompletionContext, CompletionItem, CompletionKind, Completions};
@@ -17,10 +16,13 @@ pub(super) fn complete_fn_param(acc: &mut Completions, ctx: &CompletionContext)
17 16
18 let mut params = FxHashMap::default(); 17 let mut params = FxHashMap::default();
19 for node in ctx.token.parent().ancestors() { 18 for node in ctx.token.parent().ancestors() {
20 let _ = visitor_ctx(&mut params) 19 match_ast! {
21 .visit::<ast::SourceFile, _>(process) 20 match node {
22 .visit::<ast::ItemList, _>(process) 21 ast::SourceFile(it) => { process(it, &mut params) },
23 .accept(&node); 22 ast::ItemList(it) => { process(it, &mut params) },
23 _ => (),
24 }
25 }
24 } 26 }
25 params 27 params
26 .into_iter() 28 .into_iter()