Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_db/src/search.rs')
| -rw-r--r-- | crates/ide_db/src/search.rs | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/crates/ide_db/src/search.rs b/crates/ide_db/src/search.rs index 7ea2bc63f2..b7db96e934 100644 --- a/crates/ide_db/src/search.rs +++ b/crates/ide_db/src/search.rs @@ -309,13 +309,14 @@ impl Definition { } pub fn usages<'a>(self, sema: &'a Semantics<RootDatabase>) -> FindUsages<'a> { - FindUsages { - def: self, - sema, - scope: None, - include_self_kw_refs: None, - search_self_mod: false, - } + let def = match self { + def @ Definition::Function(f) => { + // search for proc-macro usages if this function describes a proc macro + f.as_proc_macro(sema.db).map(Definition::Macro).unwrap_or(def) + } + def => def, + }; + FindUsages { def, sema, scope: None, include_self_kw_refs: None, search_self_mod: false } } } |