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.rs46
1 files changed, 10 insertions, 36 deletions
diff --git a/crates/hir-ty/src/next_solver/mapping.rs b/crates/hir-ty/src/next_solver/mapping.rs
index 11bc6e6abe..ce56282a00 100644
--- a/crates/hir-ty/src/next_solver/mapping.rs
+++ b/crates/hir-ty/src/next_solver/mapping.rs
@@ -243,12 +243,10 @@ impl<'db> ChalkToNextSolver<'db, Ty<'db>> for chalk_ir::Ty<Interner> {
}
chalk_ir::TyKind::FnDef(fn_def_id, substitution) => {
let def_id = CallableDefId::from_chalk(interner.db(), *fn_def_id);
- let id: SolverDefId = match def_id {
- CallableDefId::FunctionId(id) => id.into(),
- CallableDefId::StructId(id) => SolverDefId::Ctor(Ctor::Struct(id)),
- CallableDefId::EnumVariantId(id) => SolverDefId::Ctor(Ctor::Enum(id)),
- };
- rustc_type_ir::TyKind::FnDef(id, substitution.to_nextsolver(interner))
+ rustc_type_ir::TyKind::FnDef(
+ def_id.into(),
+ substitution.to_nextsolver(interner),
+ )
}
chalk_ir::TyKind::Str => rustc_type_ir::TyKind::Str,
chalk_ir::TyKind::Never => rustc_type_ir::TyKind::Never,
@@ -271,7 +269,7 @@ impl<'db> ChalkToNextSolver<'db, Ty<'db>> for chalk_ir::Ty<Interner> {
)
}
chalk_ir::TyKind::Foreign(foreign_def_id) => rustc_type_ir::TyKind::Foreign(
- SolverDefId::TypeAliasId(crate::from_foreign_def_id(*foreign_def_id)),
+ crate::from_foreign_def_id(*foreign_def_id).into(),
),
chalk_ir::TyKind::Error => rustc_type_ir::TyKind::Error(ErrorGuaranteed),
chalk_ir::TyKind::Dyn(dyn_ty) => {
@@ -1511,13 +1509,7 @@ pub(crate) fn convert_ty_for_result<'db>(interner: DbInterner<'db>, ty: Ty<'db>)
TyKind::Slice(ty)
}
- rustc_type_ir::TyKind::Foreign(foreign) => {
- let def_id = match foreign {
- SolverDefId::TypeAliasId(id) => id,
- _ => unreachable!(),
- };
- TyKind::Foreign(to_foreign_def_id(def_id))
- }
+ rustc_type_ir::TyKind::Foreign(foreign) => TyKind::Foreign(to_foreign_def_id(foreign.0)),
rustc_type_ir::TyKind::Pat(_, _) => unimplemented!(),
rustc_type_ir::TyKind::RawPtr(ty, mutability) => {
let mutability = match mutability {
@@ -1528,40 +1520,22 @@ pub(crate) fn convert_ty_for_result<'db>(interner: DbInterner<'db>, ty: Ty<'db>)
TyKind::Raw(mutability, ty)
}
rustc_type_ir::TyKind::FnDef(def_id, args) => {
- let id = match def_id {
- SolverDefId::FunctionId(id) => CallableDefId::FunctionId(id),
- SolverDefId::Ctor(Ctor::Struct(id)) => CallableDefId::StructId(id),
- SolverDefId::Ctor(Ctor::Enum(id)) => CallableDefId::EnumVariantId(id),
- _ => unreachable!(),
- };
let subst = convert_args_for_result(interner, args.as_slice());
- TyKind::FnDef(id.to_chalk(interner.db()), subst)
+ TyKind::FnDef(def_id.0.to_chalk(interner.db()), subst)
}
rustc_type_ir::TyKind::Closure(def_id, args) => {
- let id = match def_id {
- SolverDefId::InternedClosureId(id) => id,
- _ => unreachable!(),
- };
let subst = convert_args_for_result(interner, args.as_slice());
- TyKind::Closure(id.into(), subst)
+ TyKind::Closure(def_id.0.into(), subst)
}
rustc_type_ir::TyKind::CoroutineClosure(_, _) => unimplemented!(),
rustc_type_ir::TyKind::Coroutine(def_id, args) => {
- let id = match def_id {
- SolverDefId::InternedCoroutineId(id) => id,
- _ => unreachable!(),
- };
let subst = convert_args_for_result(interner, args.as_slice());
- TyKind::Coroutine(id.into(), subst)
+ TyKind::Coroutine(def_id.0.into(), subst)
}
rustc_type_ir::TyKind::CoroutineWitness(def_id, args) => {
- let id = match def_id {
- SolverDefId::InternedCoroutineId(id) => id,
- _ => unreachable!(),
- };
let subst = convert_args_for_result(interner, args.as_slice());
- TyKind::CoroutineWitness(id.into(), subst)
+ TyKind::CoroutineWitness(def_id.0.into(), subst)
}
rustc_type_ir::TyKind::UnsafeBinder(_) => unimplemented!(),