aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty/method_resolution.rs
diff options
context:
space:
mode:
authorbors[bot] <bors[bot]@users.noreply.github.com>2019-05-07 18:37:47 +0100
committerbors[bot] <bors[bot]@users.noreply.github.com>2019-05-07 18:37:47 +0100
commit70cd5ffbf5f2283fc4986c581d225987620b5335 (patch)
tree10d66df8729d3bd823ace808f3a05146a32d4ed4 /crates/ra_hir/src/ty/method_resolution.rs
parentd3efedb752bb2198796603d8a479a5e3ee472a97 (diff)
parent530b3047ed19a6468fc75e5a5ec14763093a069d (diff)
Merge #1251
1251: Chalk integration improvements r=matklad a=flodiebold A few improvements that came up while working on where clause support: - turn `implements` into a query again to improve performance - allow skipping to a specific function with `analysis-stats`, e.g. `ra_cli analysis-stats --only world_symbols` - deduplicate impls in impls_for_trait -- previously many impls e.g. from std where repeated many times, this should help performance as well... - add a `HirDisplay` implementation for TraitRef (not used here anywhere, but useful for debugging) Co-authored-by: Florian Diebold <[email protected]>
Diffstat (limited to 'crates/ra_hir/src/ty/method_resolution.rs')
-rw-r--r--crates/ra_hir/src/ty/method_resolution.rs3
1 files changed, 1 insertions, 2 deletions
diff --git a/crates/ra_hir/src/ty/method_resolution.rs b/crates/ra_hir/src/ty/method_resolution.rs
index 607e9ba79..d8b8c836c 100644
--- a/crates/ra_hir/src/ty/method_resolution.rs
+++ b/crates/ra_hir/src/ty/method_resolution.rs
@@ -196,8 +196,7 @@ fn iterate_trait_method_candidates<T>(
196 if name.map_or(true, |name| sig.name() == name) && sig.has_self_param() { 196 if name.map_or(true, |name| sig.name() == name) && sig.has_self_param() {
197 if !known_implemented { 197 if !known_implemented {
198 let trait_ref = canonical_trait_ref(db, t, ty.clone()); 198 let trait_ref = canonical_trait_ref(db, t, ty.clone());
199 // FIXME cache this implements check (without solution) in a query? 199 if db.implements(krate, trait_ref).is_none() {
200 if super::traits::implements(db, krate, trait_ref).is_none() {
201 continue 'traits; 200 continue 'traits;
202 } 201 }
203 } 202 }