From 2d69eb131f58dee1bc188b8df8d5cf0ebf9d97f2 Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Sat, 13 Mar 2021 19:27:09 +0100 Subject: Use chalk_ir::ClosureId --- crates/hir_ty/src/traits/chalk/mapping.rs | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'crates/hir_ty/src/traits/chalk/mapping.rs') diff --git a/crates/hir_ty/src/traits/chalk/mapping.rs b/crates/hir_ty/src/traits/chalk/mapping.rs index 23ef07d77..56a30363b 100644 --- a/crates/hir_ty/src/traits/chalk/mapping.rs +++ b/crates/hir_ty/src/traits/chalk/mapping.rs @@ -72,10 +72,9 @@ impl ToChalk for Ty { } TyKind::Never => chalk_ir::TyKind::Never.intern(&Interner), - TyKind::Closure(def, expr, substs) => { - let closure_id = db.intern_closure((def, expr)); + TyKind::Closure(closure_id, substs) => { let substitution = substs.to_chalk(db); - chalk_ir::TyKind::Closure(closure_id.into(), substitution).intern(&Interner) + chalk_ir::TyKind::Closure(closure_id, substitution).intern(&Interner) } TyKind::Adt(adt_id, substs) => { @@ -203,11 +202,7 @@ impl ToChalk for Ty { TyKind::FnDef(fn_def_id, from_chalk(db, subst)) } - chalk_ir::TyKind::Closure(id, subst) => { - let id: crate::db::ClosureId = id.into(); - let (def, expr) = db.lookup_intern_closure(id); - TyKind::Closure(def, expr, from_chalk(db, subst)) - } + chalk_ir::TyKind::Closure(id, subst) => TyKind::Closure(id, from_chalk(db, subst)), chalk_ir::TyKind::Foreign(foreign_def_id) => TyKind::ForeignType(foreign_def_id), chalk_ir::TyKind::Generator(_, _) => unimplemented!(), // FIXME -- cgit v1.2.3 From 1bf6b7360c3f1d0e20dece5227979bc4d74a352f Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Sat, 13 Mar 2021 19:47:34 +0100 Subject: Use chalk_ir::PlaceholderIndex --- crates/hir_ty/src/traits/chalk/mapping.rs | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) (limited to 'crates/hir_ty/src/traits/chalk/mapping.rs') diff --git a/crates/hir_ty/src/traits/chalk/mapping.rs b/crates/hir_ty/src/traits/chalk/mapping.rs index 56a30363b..460955756 100644 --- a/crates/hir_ty/src/traits/chalk/mapping.rs +++ b/crates/hir_ty/src/traits/chalk/mapping.rs @@ -3,10 +3,7 @@ //! Chalk (in both directions); plus some helper functions for more specialized //! conversions. -use chalk_ir::{ - cast::Cast, fold::shift::Shift, interner::HasInterner, LifetimeData, PlaceholderIndex, - UniverseIndex, -}; +use chalk_ir::{cast::Cast, fold::shift::Shift, interner::HasInterner, LifetimeData}; use chalk_solve::rust_ir; use base_db::salsa::InternKey; @@ -91,14 +88,7 @@ impl ToChalk for Ty { .cast(&Interner) .intern(&Interner) } - TyKind::Placeholder(id) => { - let interned_id = db.intern_type_param_id(id); - PlaceholderIndex { - ui: UniverseIndex::ROOT, - idx: interned_id.as_intern_id().as_usize(), - } - .to_ty::(&Interner) - } + TyKind::Placeholder(idx) => idx.to_ty::(&Interner), TyKind::BoundVar(idx) => chalk_ir::TyKind::BoundVar(idx).intern(&Interner), TyKind::InferenceVar(..) => panic!("uncanonicalized infer ty"), TyKind::Dyn(predicates) => { @@ -128,13 +118,7 @@ impl ToChalk for Ty { match chalk.data(&Interner).kind.clone() { chalk_ir::TyKind::Error => TyKind::Unknown, chalk_ir::TyKind::Array(ty, _size) => TyKind::Array(Substs::single(from_chalk(db, ty))), - chalk_ir::TyKind::Placeholder(idx) => { - assert_eq!(idx.ui, UniverseIndex::ROOT); - let interned_id = crate::db::GlobalTypeParamId::from_intern_id( - crate::salsa::InternId::from(idx.idx), - ); - TyKind::Placeholder(db.lookup_intern_type_param_id(interned_id)) - } + chalk_ir::TyKind::Placeholder(idx) => TyKind::Placeholder(idx), chalk_ir::TyKind::Alias(chalk_ir::AliasTy::Projection(proj)) => { let associated_ty = proj.associated_ty_id; let parameters = from_chalk(db, proj.substitution); -- cgit v1.2.3 From b035c314b4b0ecd2477fde216dbe7e8801f94d0d Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Sat, 13 Mar 2021 20:05:47 +0100 Subject: Use chalk_ir::OpaqueTyId --- crates/hir_ty/src/traits/chalk/mapping.rs | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) (limited to 'crates/hir_ty/src/traits/chalk/mapping.rs') diff --git a/crates/hir_ty/src/traits/chalk/mapping.rs b/crates/hir_ty/src/traits/chalk/mapping.rs index 460955756..2a66a2310 100644 --- a/crates/hir_ty/src/traits/chalk/mapping.rs +++ b/crates/hir_ty/src/traits/chalk/mapping.rs @@ -15,7 +15,7 @@ use crate::{ primitive::UintTy, traits::{Canonical, Obligation}, AliasTy, CallableDefId, FnPointer, FnSig, GenericPredicate, InEnvironment, OpaqueTy, - OpaqueTyId, ProjectionPredicate, ProjectionTy, Scalar, Substs, TraitRef, Ty, + ProjectionPredicate, ProjectionTy, Scalar, Substs, TraitRef, Ty, }; use super::interner::*; @@ -41,8 +41,7 @@ impl ToChalk for Ty { chalk_ir::TyKind::AssociatedType(assoc_type_id, substitution).intern(&Interner) } - TyKind::OpaqueType(impl_trait_id, substs) => { - let id = impl_trait_id.to_chalk(db); + TyKind::OpaqueType(id, substs) => { let substitution = substs.to_chalk(db); chalk_ir::TyKind::OpaqueType(id, substitution).intern(&Interner) } @@ -103,7 +102,7 @@ impl ToChalk for Ty { chalk_ir::TyKind::Dyn(bounded_ty).intern(&Interner) } TyKind::Alias(AliasTy::Opaque(opaque_ty)) => { - let opaque_ty_id = opaque_ty.opaque_ty_id.to_chalk(db); + let opaque_ty_id = opaque_ty.opaque_ty_id; let substitution = opaque_ty.parameters.to_chalk(db); chalk_ir::TyKind::Alias(chalk_ir::AliasTy::Opaque(chalk_ir::OpaqueTy { opaque_ty_id, @@ -125,9 +124,9 @@ impl ToChalk for Ty { TyKind::Alias(AliasTy::Projection(ProjectionTy { associated_ty, parameters })) } chalk_ir::TyKind::Alias(chalk_ir::AliasTy::Opaque(opaque_ty)) => { - let impl_trait_id = from_chalk(db, opaque_ty.opaque_ty_id); + let opaque_ty_id = opaque_ty.opaque_ty_id; let parameters = from_chalk(db, opaque_ty.substitution); - TyKind::Alias(AliasTy::Opaque(OpaqueTy { opaque_ty_id: impl_trait_id, parameters })) + TyKind::Alias(AliasTy::Opaque(OpaqueTy { opaque_ty_id, parameters })) } chalk_ir::TyKind::Function(chalk_ir::FnPointer { num_binders, @@ -165,7 +164,7 @@ impl ToChalk for Ty { } chalk_ir::TyKind::OpaqueType(opaque_type_id, subst) => { - TyKind::OpaqueType(from_chalk(db, opaque_type_id), from_chalk(db, subst)) + TyKind::OpaqueType(opaque_type_id, from_chalk(db, subst)) } chalk_ir::TyKind::Scalar(scalar) => TyKind::Scalar(scalar), @@ -268,21 +267,6 @@ impl ToChalk for hir_def::TraitId { } } -impl ToChalk for OpaqueTyId { - type Chalk = chalk_ir::OpaqueTyId; - - fn to_chalk(self, db: &dyn HirDatabase) -> chalk_ir::OpaqueTyId { - db.intern_impl_trait_id(self).into() - } - - fn from_chalk( - db: &dyn HirDatabase, - opaque_ty_id: chalk_ir::OpaqueTyId, - ) -> OpaqueTyId { - db.lookup_intern_impl_trait_id(opaque_ty_id.into()) - } -} - impl ToChalk for hir_def::ImplId { type Chalk = ImplId; -- cgit v1.2.3