aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ssr/src/lib.rs
diff options
context:
space:
mode:
authorDavid Lattimore <[email protected]>2020-07-22 05:01:21 +0100
committerDavid Lattimore <[email protected]>2020-07-24 12:34:00 +0100
commit63f500b0ee55443a52f078060004c911a7532a14 (patch)
tree7944b776eea1eb69e4d822f5c004d5f082acd9b8 /crates/ra_ssr/src/lib.rs
parent757f755c29e041fd319af466d7d0418f54cb090a (diff)
SSR: Use Definition::find_usages to speed up matching.
When the search pattern contains a path, this substantially speeds up finding matches, especially if the path references a private item.
Diffstat (limited to 'crates/ra_ssr/src/lib.rs')
-rw-r--r--crates/ra_ssr/src/lib.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/crates/ra_ssr/src/lib.rs b/crates/ra_ssr/src/lib.rs
index 286619f59..5a71d4f31 100644
--- a/crates/ra_ssr/src/lib.rs
+++ b/crates/ra_ssr/src/lib.rs
@@ -151,8 +151,9 @@ impl<'db> MatchFinder<'db> {
151 /// Returns matches for all added rules. 151 /// Returns matches for all added rules.
152 pub fn matches(&self) -> SsrMatches { 152 pub fn matches(&self) -> SsrMatches {
153 let mut matches = Vec::new(); 153 let mut matches = Vec::new();
154 let mut usage_cache = search::UsageCache::default();
154 for rule in &self.rules { 155 for rule in &self.rules {
155 self.find_matches_for_rule(rule, &mut matches); 156 self.find_matches_for_rule(rule, &mut usage_cache, &mut matches);
156 } 157 }
157 nester::nest_and_remove_collisions(matches, &self.sema) 158 nester::nest_and_remove_collisions(matches, &self.sema)
158 } 159 }