From c8b85891b0c6c03a1b373491f75b8872ec47e06f Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Sat, 11 May 2019 23:54:41 +0200 Subject: Fix impl blocks with unresolved target trait being treated as inherent impls --- crates/ra_hir/src/ty/method_resolution.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/crates/ra_hir/src/ty/method_resolution.rs b/crates/ra_hir/src/ty/method_resolution.rs index d8b8c836c..e8cfa0b85 100644 --- a/crates/ra_hir/src/ty/method_resolution.rs +++ b/crates/ra_hir/src/ty/method_resolution.rs @@ -75,11 +75,13 @@ impl CrateImplBlocks { let target_ty = impl_block.target_ty(db); - if let Some(tr) = impl_block.target_trait_ref(db) { - self.impls_by_trait - .entry(tr.trait_) - .or_insert_with(Vec::new) - .push((module.module_id, impl_id)); + if impl_block.target_trait(db).is_some() { + if let Some(tr) = impl_block.target_trait_ref(db) { + self.impls_by_trait + .entry(tr.trait_) + .or_insert_with(Vec::new) + .push((module.module_id, impl_id)); + } } else { if let Some(target_ty_fp) = TyFingerprint::for_impl(&target_ty) { self.impls -- cgit v1.2.3