Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/moniker.rs')
| -rw-r--r-- | crates/ide/src/moniker.rs | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/crates/ide/src/moniker.rs b/crates/ide/src/moniker.rs index c93c471f49..53f6d7ec7a 100644 --- a/crates/ide/src/moniker.rs +++ b/crates/ide/src/moniker.rs @@ -4,7 +4,7 @@ use hir::{db::DefDatabase, AsAssocItem, AssocItemContainer, Crate, Name, Semantics}; use ide_db::{ base_db::{CrateOrigin, FileId, FileLoader, FilePosition}, - defs::Definition, + defs::{Definition, IdentClass}, helpers::pick_best_token, RootDatabase, }; @@ -82,11 +82,10 @@ pub(crate) fn moniker( let navs = sema .descend_into_macros(original_token.clone()) .into_iter() - .map(|token| { - Definition::from_token(sema, &token) - .into_iter() - .flat_map(|def| def_to_moniker(sema.db, def, current_crate)) - .collect::<Vec<_>>() + .filter_map(|token| { + IdentClass::classify_token(sema, &token).map(IdentClass::definitions).map(|it| { + it.into_iter().flat_map(|def| def_to_moniker(sema.db, def, current_crate)) + }) }) .flatten() .unique() |