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.rs | 7 +++---- crates/hir_ty/src/traits/chalk/mapping.rs | 28 ++++++---------------------- 2 files changed, 9 insertions(+), 26 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 e7217bc11..1f3e1c07a 100644 --- a/crates/hir_ty/src/traits/chalk.rs +++ b/crates/hir_ty/src/traits/chalk.rs @@ -177,10 +177,9 @@ impl<'a> chalk_solve::RustIrDatabase for ChalkContext<'a> { } fn opaque_ty_data(&self, id: chalk_ir::OpaqueTyId) -> Arc { - let interned_id = crate::db::InternedOpaqueTyId::from(id); - let full_id = self.db.lookup_intern_impl_trait_id(interned_id); + let full_id = self.db.lookup_intern_impl_trait_id(id.into()); let bound = match full_id { - crate::OpaqueTyId::ReturnTypeImplTrait(func, idx) => { + crate::ImplTraitId::ReturnTypeImplTrait(func, idx) => { let datas = self .db .return_type_impl_traits(func) @@ -202,7 +201,7 @@ impl<'a> chalk_solve::RustIrDatabase for ChalkContext<'a> { let num_vars = datas.num_binders; make_binders(bound, num_vars) } - crate::OpaqueTyId::AsyncBlockTypeImplTrait(..) => { + crate::ImplTraitId::AsyncBlockTypeImplTrait(..) => { if let Some((future_trait, future_output)) = self .db .lang_item(self.krate, "future_trait".into()) 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