diff options
Diffstat (limited to 'crates/hir_ty/src/infer.rs')
-rw-r--r-- | crates/hir_ty/src/infer.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/crates/hir_ty/src/infer.rs b/crates/hir_ty/src/infer.rs index acde99b04..9d9bf549c 100644 --- a/crates/hir_ty/src/infer.rs +++ b/crates/hir_ty/src/infer.rs | |||
@@ -42,7 +42,7 @@ use super::{ | |||
42 | }; | 42 | }; |
43 | use crate::{ | 43 | use crate::{ |
44 | db::HirDatabase, infer::diagnostics::InferenceDiagnostic, lower::ImplTraitLoweringMode, | 44 | db::HirDatabase, infer::diagnostics::InferenceDiagnostic, lower::ImplTraitLoweringMode, |
45 | AliasTy, Interner, TyKind, | 45 | to_assoc_type_id, AliasTy, Interner, TyKind, |
46 | }; | 46 | }; |
47 | 47 | ||
48 | pub(crate) use unify::unify; | 48 | pub(crate) use unify::unify; |
@@ -382,7 +382,10 @@ impl<'a> InferenceContext<'a> { | |||
382 | let trait_ref = TraitRef { trait_, substs: substs.clone() }; | 382 | let trait_ref = TraitRef { trait_, substs: substs.clone() }; |
383 | let projection = ProjectionPredicate { | 383 | let projection = ProjectionPredicate { |
384 | ty: ty.clone(), | 384 | ty: ty.clone(), |
385 | projection_ty: ProjectionTy { associated_ty: res_assoc_ty, parameters: substs }, | 385 | projection_ty: ProjectionTy { |
386 | associated_ty: to_assoc_type_id(res_assoc_ty), | ||
387 | parameters: substs, | ||
388 | }, | ||
386 | }; | 389 | }; |
387 | self.obligations.push(Obligation::Trait(trait_ref)); | 390 | self.obligations.push(Obligation::Trait(trait_ref)); |
388 | self.obligations.push(Obligation::Projection(projection)); | 391 | self.obligations.push(Obligation::Projection(projection)); |