diff options
author | David Lattimore <[email protected]> | 2020-07-22 05:01:21 +0100 |
---|---|---|
committer | David Lattimore <[email protected]> | 2020-07-24 12:34:00 +0100 |
commit | 63f500b0ee55443a52f078060004c911a7532a14 (patch) | |
tree | 7944b776eea1eb69e4d822f5c004d5f082acd9b8 /crates/ra_ssr/src/lib.rs | |
parent | 757f755c29e041fd319af466d7d0418f54cb090a (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.rs | 3 |
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 | } |