Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/next_solver/mapping.rs')
-rw-r--r--crates/hir-ty/src/next_solver/mapping.rs22
1 files changed, 16 insertions, 6 deletions
diff --git a/crates/hir-ty/src/next_solver/mapping.rs b/crates/hir-ty/src/next_solver/mapping.rs
index cad51fd85f..8f6296b145 100644
--- a/crates/hir-ty/src/next_solver/mapping.rs
+++ b/crates/hir-ty/src/next_solver/mapping.rs
@@ -808,14 +808,24 @@ impl<'db> ChalkToNextSolver<'db, PredicateKind<'db>> for chalk_ir::DomainGoal<In
_ => unimplemented!(),
};
let args: GenericArgs<'db> = proj_ty.substitution.to_nextsolver(interner);
- let alias = rustc_type_ir::AliasTerm::new(
+ let alias = Ty::new(
interner,
- from_assoc_type_id(proj_ty.associated_ty_id).into(),
- args,
- );
+ rustc_type_ir::TyKind::Alias(
+ rustc_type_ir::AliasTyKind::Projection,
+ rustc_type_ir::AliasTy::new(
+ interner,
+ from_assoc_type_id(proj_ty.associated_ty_id).into(),
+ args,
+ ),
+ ),
+ )
+ .into();
let term = normalize.ty.to_nextsolver(interner).into();
- let normalizes_to = rustc_type_ir::NormalizesTo { alias, term };
- PredicateKind::NormalizesTo(normalizes_to)
+ PredicateKind::AliasRelate(
+ alias,
+ term,
+ rustc_type_ir::AliasRelationDirection::Equate,
+ )
}
chalk_ir::DomainGoal::WellFormed(well_formed) => {
let term = match well_formed {