diff options
Diffstat (limited to 'crates/ra_hir/src/ty/method_resolution.rs')
-rw-r--r-- | crates/ra_hir/src/ty/method_resolution.rs | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/crates/ra_hir/src/ty/method_resolution.rs b/crates/ra_hir/src/ty/method_resolution.rs index b221bd142..9f65c5fe1 100644 --- a/crates/ra_hir/src/ty/method_resolution.rs +++ b/crates/ra_hir/src/ty/method_resolution.rs | |||
@@ -8,7 +8,11 @@ use rustc_hash::FxHashMap; | |||
8 | 8 | ||
9 | use ra_db::SourceRootId; | 9 | use ra_db::SourceRootId; |
10 | 10 | ||
11 | use crate::{HirDatabase, DefId, module_tree::ModuleId, Module, Crate, Name, Function, impl_block::{ImplId, ImplBlock, ImplItem}}; | 11 | use crate::{ |
12 | HirDatabase, DefId, module_tree::ModuleId, Module, Crate, Name, Function, | ||
13 | impl_block::{ImplId, ImplBlock, ImplItem}, | ||
14 | generics::GenericParams | ||
15 | }; | ||
12 | use super::Ty; | 16 | use super::Ty; |
13 | 17 | ||
14 | /// This is used as a key for indexing impls. | 18 | /// This is used as a key for indexing impls. |
@@ -64,8 +68,15 @@ impl CrateImplBlocks { | |||
64 | if let Some(_target_trait) = impl_data.target_trait() { | 68 | if let Some(_target_trait) = impl_data.target_trait() { |
65 | // ignore for now | 69 | // ignore for now |
66 | } else { | 70 | } else { |
67 | let target_ty = | 71 | // TODO provide generics of impl |
68 | Ty::from_hir(db, &module, Some(&impl_block), impl_data.target_type()); | 72 | let generics = GenericParams::default(); |
73 | let target_ty = Ty::from_hir( | ||
74 | db, | ||
75 | &module, | ||
76 | Some(&impl_block), | ||
77 | &generics, | ||
78 | impl_data.target_type(), | ||
79 | ); | ||
69 | if let Some(target_ty_fp) = TyFingerprint::for_impl(&target_ty) { | 80 | if let Some(target_ty_fp) = TyFingerprint::for_impl(&target_ty) { |
70 | self.impls | 81 | self.impls |
71 | .entry(target_ty_fp) | 82 | .entry(target_ty_fp) |