diff options
Diffstat (limited to 'crates/ra_hir/src/impl_block.rs')
-rw-r--r-- | crates/ra_hir/src/impl_block.rs | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/crates/ra_hir/src/impl_block.rs b/crates/ra_hir/src/impl_block.rs index 0c2bb8fee..964a3da8c 100644 --- a/crates/ra_hir/src/impl_block.rs +++ b/crates/ra_hir/src/impl_block.rs | |||
@@ -5,8 +5,7 @@ use ra_syntax::ast::{self}; | |||
5 | 5 | ||
6 | use crate::{ | 6 | use crate::{ |
7 | db::{AstDatabase, DefDatabase, HirDatabase}, | 7 | db::{AstDatabase, DefDatabase, HirDatabase}, |
8 | generics::HasGenericParams, | 8 | resolve::HasResolver, |
9 | resolve::Resolver, | ||
10 | ty::Ty, | 9 | ty::Ty, |
11 | AssocItem, Crate, HasSource, ImplBlock, Module, Source, TraitRef, | 10 | AssocItem, Crate, HasSource, ImplBlock, Module, Source, TraitRef, |
12 | }; | 11 | }; |
@@ -19,14 +18,6 @@ impl HasSource for ImplBlock { | |||
19 | } | 18 | } |
20 | 19 | ||
21 | impl ImplBlock { | 20 | impl ImplBlock { |
22 | pub(crate) fn containing(db: &impl DefDatabase, item: AssocItem) -> Option<ImplBlock> { | ||
23 | let module = item.module(db); | ||
24 | let crate_def_map = db.crate_def_map(module.id.krate); | ||
25 | crate_def_map[module.id.module_id].impls.iter().copied().map(ImplBlock::from).find(|it| { | ||
26 | db.impl_data(it.id).items().iter().copied().map(AssocItem::from).any(|it| it == item) | ||
27 | }) | ||
28 | } | ||
29 | |||
30 | pub fn target_trait(&self, db: &impl DefDatabase) -> Option<TypeRef> { | 21 | pub fn target_trait(&self, db: &impl DefDatabase) -> Option<TypeRef> { |
31 | db.impl_data(self.id).target_trait().cloned() | 22 | db.impl_data(self.id).target_trait().cloned() |
32 | } | 23 | } |
@@ -59,13 +50,4 @@ impl ImplBlock { | |||
59 | pub fn krate(&self, db: &impl DefDatabase) -> Crate { | 50 | pub fn krate(&self, db: &impl DefDatabase) -> Crate { |
60 | Crate { crate_id: self.module(db).id.krate } | 51 | Crate { crate_id: self.module(db).id.krate } |
61 | } | 52 | } |
62 | |||
63 | pub(crate) fn resolver(&self, db: &impl DefDatabase) -> Resolver { | ||
64 | let r = self.module(db).resolver(db); | ||
65 | // add generic params, if present | ||
66 | let p = self.generic_params(db); | ||
67 | let r = if !p.params.is_empty() { r.push_generic_params_scope(p) } else { r }; | ||
68 | let r = r.push_impl_block_scope(self.clone()); | ||
69 | r | ||
70 | } | ||
71 | } | 53 | } |