From ec316cb21117dbefacd67af2f33779fb2d66fdea Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Sun, 3 Jan 2021 15:58:15 +0200 Subject: Ignore associated items during unqialified path fuzzy completions --- crates/completion/src/completions/unqualified_path.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/crates/completion/src/completions/unqualified_path.rs b/crates/completion/src/completions/unqualified_path.rs index 81a6d00e2..068b6b407 100644 --- a/crates/completion/src/completions/unqualified_path.rs +++ b/crates/completion/src/completions/unqualified_path.rs @@ -3,7 +3,7 @@ use std::iter; use either::Either; -use hir::{Adt, ModPath, ModuleDef, ScopeDef, Type}; +use hir::{Adt, AsAssocItem, ModPath, ModuleDef, ScopeDef, Type}; use ide_db::helpers::insert_use::ImportScope; use ide_db::imports_locator; use syntax::AstNode; @@ -143,6 +143,14 @@ fn fuzzy_completion(acc: &mut Completions, ctx: &CompletionContext) -> Option<() potential_import_name, true, ) + .filter(|import_candidate| match import_candidate { + Either::Left(ModuleDef::Function(function)) => function.as_assoc_item(ctx.db).is_none(), + Either::Left(ModuleDef::Const(const_)) => const_.as_assoc_item(ctx.db).is_none(), + Either::Left(ModuleDef::TypeAlias(type_alias)) => { + type_alias.as_assoc_item(ctx.db).is_none() + } + _ => true, + }) .filter_map(|import_candidate| { Some(match import_candidate { Either::Left(module_def) => { -- cgit v1.2.3