From 1914b7723f2f77a7259c65c888107e95f00d0ba1 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Wed, 3 Mar 2021 21:58:48 +0100 Subject: Don't complete `super` unless its valid in paths --- crates/ide_completion/src/completions/fn_param.rs | 27 ++++++++++------------- 1 file changed, 12 insertions(+), 15 deletions(-) (limited to 'crates/ide_completion/src/completions/fn_param.rs') diff --git a/crates/ide_completion/src/completions/fn_param.rs b/crates/ide_completion/src/completions/fn_param.rs index 38e33a93e..1bcc8727f 100644 --- a/crates/ide_completion/src/completions/fn_param.rs +++ b/crates/ide_completion/src/completions/fn_param.rs @@ -25,9 +25,12 @@ pub(crate) fn complete_fn_param(acc: &mut Completions, ctx: &CompletionContext) return; } func.param_list().into_iter().flat_map(|it| it.params()).for_each(|param| { - let text = param.syntax().text().to_string(); - params.entry(text).or_insert(param); - }) + if let Some(pat) = param.pat() { + let text = param.syntax().text().to_string(); + let lookup = pat.syntax().text().to_string(); + params.entry(text).or_insert(lookup); + } + }); }; for node in ctx.token.parent().ancestors() { @@ -50,18 +53,12 @@ pub(crate) fn complete_fn_param(acc: &mut Completions, ctx: &CompletionContext) }; } - params - .into_iter() - .filter_map(|(label, param)| { - let lookup = param.pat()?.syntax().text().to_string(); - Some((label, lookup)) - }) - .for_each(|(label, lookup)| { - CompletionItem::new(CompletionKind::Magic, ctx.source_range(), label) - .kind(CompletionItemKind::Binding) - .lookup_by(lookup) - .add_to(acc) - }); + params.into_iter().for_each(|(label, lookup)| { + CompletionItem::new(CompletionKind::Magic, ctx.source_range(), label) + .kind(CompletionItemKind::Binding) + .lookup_by(lookup) + .add_to(acc) + }); } #[cfg(test)] -- cgit v1.2.3