diff options
Diffstat (limited to 'crates/ra_hir/src/ty/method_resolution.rs')
-rw-r--r-- | crates/ra_hir/src/ty/method_resolution.rs | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/crates/ra_hir/src/ty/method_resolution.rs b/crates/ra_hir/src/ty/method_resolution.rs index be63806d4..8b46b11a9 100644 --- a/crates/ra_hir/src/ty/method_resolution.rs +++ b/crates/ra_hir/src/ty/method_resolution.rs | |||
@@ -11,13 +11,12 @@ use super::{autoderef, lower, Canonical, InEnvironment, TraitEnvironment, TraitR | |||
11 | use crate::{ | 11 | use crate::{ |
12 | db::HirDatabase, | 12 | db::HirDatabase, |
13 | generics::HasGenericParams, | 13 | generics::HasGenericParams, |
14 | impl_block::{ImplBlock, ImplId, ImplItem}, | 14 | impl_block::{ImplBlock, ImplId}, |
15 | nameres::CrateModuleId, | 15 | nameres::CrateModuleId, |
16 | resolve::Resolver, | 16 | resolve::Resolver, |
17 | traits::TraitItem, | ||
18 | ty::primitive::{FloatBitness, UncertainFloatTy, UncertainIntTy}, | 17 | ty::primitive::{FloatBitness, UncertainFloatTy, UncertainIntTy}, |
19 | ty::{Ty, TypeCtor}, | 18 | ty::{Ty, TypeCtor}, |
20 | Crate, Function, Module, Name, Trait, | 19 | AssocItem, Crate, Function, Module, Name, Trait, |
21 | }; | 20 | }; |
22 | 21 | ||
23 | /// This is used as a key for indexing impls. | 22 | /// This is used as a key for indexing impls. |
@@ -232,7 +231,7 @@ fn iterate_trait_method_candidates<T>( | |||
232 | // iteration | 231 | // iteration |
233 | let mut known_implemented = inherently_implemented; | 232 | let mut known_implemented = inherently_implemented; |
234 | for item in data.items() { | 233 | for item in data.items() { |
235 | if let TraitItem::Function(m) = *item { | 234 | if let AssocItem::Function(m) = *item { |
236 | let data = m.data(db); | 235 | let data = m.data(db); |
237 | if name.map_or(true, |name| data.name() == name) && data.has_self_param() { | 236 | if name.map_or(true, |name| data.name() == name) && data.has_self_param() { |
238 | if !known_implemented { | 237 | if !known_implemented { |
@@ -264,7 +263,7 @@ fn iterate_inherent_methods<T>( | |||
264 | 263 | ||
265 | for impl_block in impls.lookup_impl_blocks(&ty.value) { | 264 | for impl_block in impls.lookup_impl_blocks(&ty.value) { |
266 | for item in impl_block.items(db) { | 265 | for item in impl_block.items(db) { |
267 | if let ImplItem::Method(f) = item { | 266 | if let AssocItem::Function(f) = item { |
268 | let data = f.data(db); | 267 | let data = f.data(db); |
269 | if name.map_or(true, |name| data.name() == name) && data.has_self_param() { | 268 | if name.map_or(true, |name| data.name() == name) && data.has_self_param() { |
270 | if let Some(result) = callback(&ty.value, f) { | 269 | if let Some(result) = callback(&ty.value, f) { |
@@ -304,7 +303,7 @@ impl Ty { | |||
304 | self, | 303 | self, |
305 | db: &impl HirDatabase, | 304 | db: &impl HirDatabase, |
306 | krate: Crate, | 305 | krate: Crate, |
307 | mut callback: impl FnMut(ImplItem) -> Option<T>, | 306 | mut callback: impl FnMut(AssocItem) -> Option<T>, |
308 | ) -> Option<T> { | 307 | ) -> Option<T> { |
309 | for krate in def_crates(db, krate, &self)? { | 308 | for krate in def_crates(db, krate, &self)? { |
310 | let impls = db.impls_in_crate(krate); | 309 | let impls = db.impls_in_crate(krate); |