diff options
| author | Michael Goulet <michael@errs.io> | 2024-05-26 20:53:00 -0400 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2024-05-26 20:53:00 -0400 |
| commit | f92292978f7b8ff985efdf5f4c471e051c3f6a92 (patch) | |
| tree | 56e74020e0ce725715eb9e920600e96a0a58c7b9 | |
| parent | 993553ceb8e11210381e2baffd3fce63244dcf6d (diff) | |
| download | rust-f92292978f7b8ff985efdf5f4c471e051c3f6a92.tar.gz rust-f92292978f7b8ff985efdf5f4c471e051c3f6a92.zip | |
Use EarlyBinder in rustc_type_ir, simplify imports
| -rw-r--r-- | compiler/rustc_middle/src/ty/context.rs | 4 | ||||
| -rw-r--r-- | compiler/rustc_type_ir/src/interner.rs | 44 | ||||
| -rw-r--r-- | compiler/rustc_type_ir/src/predicate.rs | 2 |
3 files changed, 23 insertions, 27 deletions
diff --git a/compiler/rustc_middle/src/ty/context.rs b/compiler/rustc_middle/src/ty/context.rs index 40871dd4ada..500c298a78e 100644 --- a/compiler/rustc_middle/src/ty/context.rs +++ b/compiler/rustc_middle/src/ty/context.rs @@ -151,8 +151,8 @@ impl<'tcx> Interner for TyCtxt<'tcx> { self.generics_of(def_id) } - fn type_of_instantiated(self, def_id: DefId, args: ty::GenericArgsRef<'tcx>) -> Ty<'tcx> { - self.type_of(def_id).instantiate(self, args) + fn type_of(self, def_id: DefId) -> ty::EarlyBinder<'tcx, Ty<'tcx>> { + self.type_of(def_id) } fn alias_ty_kind(self, alias: ty::AliasTy<'tcx>) -> ty::AliasTyKind { diff --git a/compiler/rustc_type_ir/src/interner.rs b/compiler/rustc_type_ir/src/interner.rs index d9485e91479..e49db171a53 100644 --- a/compiler/rustc_type_ir/src/interner.rs +++ b/compiler/rustc_type_ir/src/interner.rs @@ -7,26 +7,22 @@ use crate::inherent::*; use crate::ir_print::IrPrint; use crate::solve::inspect::CanonicalGoalEvaluationStep; use crate::visit::{Flags, TypeSuperVisitable, TypeVisitable}; -use crate::{ - AliasTerm, AliasTermKind, AliasTy, AliasTyKind, CanonicalVarInfo, CoercePredicate, - DebugWithInfcx, ExistentialProjection, ExistentialTraitRef, FnSig, GenericArgKind, - NormalizesTo, ProjectionPredicate, SubtypePredicate, TermKind, TraitPredicate, TraitRef, -}; +use crate::{self as ty, DebugWithInfcx}; pub trait Interner: Sized + Copy - + IrPrint<AliasTy<Self>> - + IrPrint<AliasTerm<Self>> - + IrPrint<TraitRef<Self>> - + IrPrint<TraitPredicate<Self>> - + IrPrint<ExistentialTraitRef<Self>> - + IrPrint<ExistentialProjection<Self>> - + IrPrint<ProjectionPredicate<Self>> - + IrPrint<NormalizesTo<Self>> - + IrPrint<SubtypePredicate<Self>> - + IrPrint<CoercePredicate<Self>> - + IrPrint<FnSig<Self>> + + IrPrint<ty::AliasTy<Self>> + + IrPrint<ty::AliasTerm<Self>> + + IrPrint<ty::TraitRef<Self>> + + IrPrint<ty::TraitPredicate<Self>> + + IrPrint<ty::ExistentialTraitRef<Self>> + + IrPrint<ty::ExistentialProjection<Self>> + + IrPrint<ty::ProjectionPredicate<Self>> + + IrPrint<ty::NormalizesTo<Self>> + + IrPrint<ty::SubtypePredicate<Self>> + + IrPrint<ty::CoercePredicate<Self>> + + IrPrint<ty::FnSig<Self>> { type DefId: Copy + Debug + Hash + Eq + TypeVisitable<Self>; type AdtDef: Copy + Debug + Hash + Eq; @@ -39,9 +35,9 @@ pub trait Interner: + DebugWithInfcx<Self> + Hash + Eq - + IntoKind<Kind = GenericArgKind<Self>> + + IntoKind<Kind = ty::GenericArgKind<Self>> + TypeVisitable<Self>; - type Term: Copy + Debug + Hash + Eq + IntoKind<Kind = TermKind<Self>> + TypeVisitable<Self>; + type Term: Copy + Debug + Hash + Eq + IntoKind<Kind = ty::TermKind<Self>> + TypeVisitable<Self>; type BoundVarKinds: Copy + Debug @@ -51,7 +47,7 @@ pub trait Interner: + Default; type BoundVarKind: Copy + Debug + Hash + Eq; - type CanonicalVars: Copy + Debug + Hash + Eq + IntoIterator<Item = CanonicalVarInfo<Self>>; + type CanonicalVars: Copy + Debug + Hash + Eq + IntoIterator<Item = ty::CanonicalVarInfo<Self>>; type PredefinedOpaques: Copy + Debug + Hash + Eq; type DefiningOpaqueTypes: Copy + Debug + Hash + Default + Eq + TypeVisitable<Self>; type ExternalConstraints: Copy + Debug + Hash + Eq; @@ -99,23 +95,23 @@ pub trait Interner: type Clause: Clause<Self>; type Clauses: Copy + Debug + Hash + Eq + TypeSuperVisitable<Self> + Flags; - fn mk_canonical_var_infos(self, infos: &[CanonicalVarInfo<Self>]) -> Self::CanonicalVars; + fn mk_canonical_var_infos(self, infos: &[ty::CanonicalVarInfo<Self>]) -> Self::CanonicalVars; type GenericsOf: GenericsOf<Self>; fn generics_of(self, def_id: Self::DefId) -> Self::GenericsOf; // FIXME: Remove after uplifting `EarlyBinder` - fn type_of_instantiated(self, def_id: Self::DefId, args: Self::GenericArgs) -> Self::Ty; + fn type_of(self, def_id: Self::DefId) -> ty::EarlyBinder<Self, Self::Ty>; - fn alias_ty_kind(self, alias: AliasTy<Self>) -> AliasTyKind; + fn alias_ty_kind(self, alias: ty::AliasTy<Self>) -> ty::AliasTyKind; - fn alias_term_kind(self, alias: AliasTerm<Self>) -> AliasTermKind; + fn alias_term_kind(self, alias: ty::AliasTerm<Self>) -> ty::AliasTermKind; fn trait_ref_and_own_args_for_alias( self, def_id: Self::DefId, args: Self::GenericArgs, - ) -> (TraitRef<Self>, Self::OwnItemArgs); + ) -> (ty::TraitRef<Self>, Self::OwnItemArgs); fn mk_args(self, args: &[Self::GenericArg]) -> Self::GenericArgs; diff --git a/compiler/rustc_type_ir/src/predicate.rs b/compiler/rustc_type_ir/src/predicate.rs index 4e12c6b3d67..48a6f79993c 100644 --- a/compiler/rustc_type_ir/src/predicate.rs +++ b/compiler/rustc_type_ir/src/predicate.rs @@ -567,7 +567,7 @@ impl<I: Interner> AliasTerm<I> { I::Const::new_unevaluated( interner, ty::UnevaluatedConst::new(self.def_id, self.args), - interner.type_of_instantiated(self.def_id, self.args), + interner.type_of(self.def_id).instantiate(interner, &self.args), ) .into() } |
