diff options
Diffstat (limited to 'crates/hir_ty/src/infer/path.rs')
-rw-r--r-- | crates/hir_ty/src/infer/path.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/crates/hir_ty/src/infer/path.rs b/crates/hir_ty/src/infer/path.rs index 495282eba..14c99eafd 100644 --- a/crates/hir_ty/src/infer/path.rs +++ b/crates/hir_ty/src/infer/path.rs | |||
@@ -65,7 +65,6 @@ impl<'a> InferenceContext<'a> { | |||
65 | let typable: ValueTyDefId = match value { | 65 | let typable: ValueTyDefId = match value { |
66 | ValueNs::LocalBinding(pat) => { | 66 | ValueNs::LocalBinding(pat) => { |
67 | let ty = self.result.type_of_pat.get(pat)?.clone(); | 67 | let ty = self.result.type_of_pat.get(pat)?.clone(); |
68 | let ty = self.resolve_ty_as_possible(ty); | ||
69 | return Some(ty); | 68 | return Some(ty); |
70 | } | 69 | } |
71 | ValueNs::FunctionId(it) => it.into(), | 70 | ValueNs::FunctionId(it) => it.into(), |
@@ -218,14 +217,14 @@ impl<'a> InferenceContext<'a> { | |||
218 | return Some(result); | 217 | return Some(result); |
219 | } | 218 | } |
220 | 219 | ||
221 | let canonical_ty = self.canonicalizer().canonicalize_ty(ty.clone()); | 220 | let canonical_ty = self.canonicalize(ty.clone()); |
222 | let krate = self.resolver.krate()?; | 221 | let krate = self.resolver.krate()?; |
223 | let traits_in_scope = self.resolver.traits_in_scope(self.db.upcast()); | 222 | let traits_in_scope = self.resolver.traits_in_scope(self.db.upcast()); |
224 | 223 | ||
225 | method_resolution::iterate_method_candidates( | 224 | method_resolution::iterate_method_candidates( |
226 | &canonical_ty.value, | 225 | &canonical_ty.value, |
227 | self.db, | 226 | self.db, |
228 | self.trait_env.clone(), | 227 | self.table.trait_env.clone(), |
229 | krate, | 228 | krate, |
230 | &traits_in_scope, | 229 | &traits_in_scope, |
231 | None, | 230 | None, |
@@ -275,6 +274,7 @@ impl<'a> InferenceContext<'a> { | |||
275 | name: &Name, | 274 | name: &Name, |
276 | id: ExprOrPatId, | 275 | id: ExprOrPatId, |
277 | ) -> Option<(ValueNs, Option<Substitution>)> { | 276 | ) -> Option<(ValueNs, Option<Substitution>)> { |
277 | let ty = self.resolve_ty_shallow(ty); | ||
278 | let (enum_id, subst) = match ty.as_adt() { | 278 | let (enum_id, subst) = match ty.as_adt() { |
279 | Some((AdtId::EnumId(e), subst)) => (e, subst), | 279 | Some((AdtId::EnumId(e), subst)) => (e, subst), |
280 | _ => return None, | 280 | _ => return None, |