From 50e01d2bc7429d718e0783d75458a6a047ee2b70 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Mon, 1 Mar 2021 21:57:39 +0100 Subject: Use chalk_ir::AdtId --- crates/hir_ty/src/traits/chalk.rs | 14 ++++++-------- crates/hir_ty/src/traits/chalk/mapping.rs | 16 ++-------------- 2 files changed, 8 insertions(+), 22 deletions(-) (limited to 'crates/hir_ty/src/traits') diff --git a/crates/hir_ty/src/traits/chalk.rs b/crates/hir_ty/src/traits/chalk.rs index e513fa8f4..4378a9723 100644 --- a/crates/hir_ty/src/traits/chalk.rs +++ b/crates/hir_ty/src/traits/chalk.rs @@ -315,9 +315,8 @@ impl<'a> chalk_solve::RustIrDatabase for ChalkContext<'a> { let id = from_chalk(self.db, trait_id); self.db.trait_data(id).name.to_string() } - fn adt_name(&self, adt_id: chalk_ir::AdtId) -> String { - let id = from_chalk(self.db, adt_id); - match id { + fn adt_name(&self, chalk_ir::AdtId(adt_id): AdtId) -> String { + match adt_id { hir_def::AdtId::StructId(id) => self.db.struct_data(id).name.to_string(), hir_def::AdtId::EnumId(id) => self.db.enum_data(id).name.to_string(), hir_def::AdtId::UnionId(id) => self.db.union_data(id).name.to_string(), @@ -488,8 +487,8 @@ pub(crate) fn struct_datum_query( struct_id: AdtId, ) -> Arc { debug!("struct_datum {:?}", struct_id); - let adt_id = from_chalk(db, struct_id); - let type_ctor = Ty::Adt(adt_id, Substs::empty()); + let type_ctor = Ty::Adt(struct_id, Substs::empty()); + let chalk_ir::AdtId(adt_id) = struct_id; debug!("struct {:?} = {:?}", struct_id, type_ctor); let num_params = generics(db.upcast(), adt_id.into()).len(); let upstream = adt_id.module(db.upcast()).krate() != krate; @@ -684,10 +683,9 @@ pub(crate) fn fn_def_variance_query( pub(crate) fn adt_variance_query( db: &dyn HirDatabase, _krate: CrateId, - adt_id: AdtId, + chalk_ir::AdtId(adt_id): AdtId, ) -> Variances { - let adt: crate::AdtId = from_chalk(db, adt_id); - let generic_params = generics(db.upcast(), adt.into()); + let generic_params = generics(db.upcast(), adt_id.into()); Variances::from_iter( &Interner, std::iter::repeat(chalk_ir::Variance::Invariant).take(generic_params.len()), diff --git a/crates/hir_ty/src/traits/chalk/mapping.rs b/crates/hir_ty/src/traits/chalk/mapping.rs index db1760e6c..3a08b67e9 100644 --- a/crates/hir_ty/src/traits/chalk/mapping.rs +++ b/crates/hir_ty/src/traits/chalk/mapping.rs @@ -86,7 +86,7 @@ impl ToChalk for Ty { Ty::Adt(adt_id, substs) => { let substitution = substs.to_chalk(db); - chalk_ir::TyKind::Adt(chalk_ir::AdtId(adt_id), substitution).intern(&Interner) + chalk_ir::TyKind::Adt(adt_id, substitution).intern(&Interner) } Ty::Alias(AliasTy::Projection(proj_ty)) => { let associated_ty_id = TypeAliasAsAssocType(proj_ty.associated_ty).to_chalk(db); @@ -183,7 +183,7 @@ impl ToChalk for Ty { Ty::Dyn(predicates) } - chalk_ir::TyKind::Adt(struct_id, subst) => Ty::Adt(struct_id.0, from_chalk(db, subst)), + chalk_ir::TyKind::Adt(adt_id, subst) => Ty::Adt(adt_id, from_chalk(db, subst)), chalk_ir::TyKind::AssociatedType(type_id, subst) => Ty::AssociatedType( from_chalk::(db, type_id).0, from_chalk(db, subst), @@ -325,18 +325,6 @@ impl ToChalk for hir_def::ImplId { } } -impl ToChalk for hir_def::AdtId { - type Chalk = AdtId; - - fn to_chalk(self, _db: &dyn HirDatabase) -> Self::Chalk { - chalk_ir::AdtId(self.into()) - } - - fn from_chalk(_db: &dyn HirDatabase, id: AdtId) -> Self { - id.0 - } -} - impl ToChalk for CallableDefId { type Chalk = FnDefId; -- cgit v1.2.3