Use EarlyBinder in rustc_type_ir, simplify imports · rust-lang/rust@f922929
@@ -7,26 +7,22 @@ use crate::inherent::*;
77use crate::ir_print::IrPrint;
88use crate::solve::inspect::CanonicalGoalEvaluationStep;
99use crate::visit::{Flags, TypeSuperVisitable, TypeVisitable};
10-use crate::{
11-AliasTerm, AliasTermKind, AliasTy, AliasTyKind, CanonicalVarInfo, CoercePredicate,
12-DebugWithInfcx, ExistentialProjection, ExistentialTraitRef, FnSig, GenericArgKind,
13-NormalizesTo, ProjectionPredicate, SubtypePredicate, TermKind, TraitPredicate, TraitRef,
14-};
10+use crate::{self as ty, DebugWithInfcx};
15111612pub trait Interner:
1713Sized
1814 + Copy
19- + IrPrint<AliasTy<Self>>
20- + IrPrint<AliasTerm<Self>>
21- + IrPrint<TraitRef<Self>>
22- + IrPrint<TraitPredicate<Self>>
23- + IrPrint<ExistentialTraitRef<Self>>
24- + IrPrint<ExistentialProjection<Self>>
25- + IrPrint<ProjectionPredicate<Self>>
26- + IrPrint<NormalizesTo<Self>>
27- + IrPrint<SubtypePredicate<Self>>
28- + IrPrint<CoercePredicate<Self>>
29- + IrPrint<FnSig<Self>>
15+ + IrPrint<ty::AliasTy<Self>>
16+ + IrPrint<ty::AliasTerm<Self>>
17+ + IrPrint<ty::TraitRef<Self>>
18+ + IrPrint<ty::TraitPredicate<Self>>
19+ + IrPrint<ty::ExistentialTraitRef<Self>>
20+ + IrPrint<ty::ExistentialProjection<Self>>
21+ + IrPrint<ty::ProjectionPredicate<Self>>
22+ + IrPrint<ty::NormalizesTo<Self>>
23+ + IrPrint<ty::SubtypePredicate<Self>>
24+ + IrPrint<ty::CoercePredicate<Self>>
25+ + IrPrint<ty::FnSig<Self>>
3026{
3127type DefId: Copy + Debug + Hash + Eq + TypeVisitable<Self>;
3228type AdtDef: Copy + Debug + Hash + Eq;
@@ -39,9 +35,9 @@ pub trait Interner:
3935 + DebugWithInfcx<Self>
4036 + Hash
4137 + Eq
42- + IntoKind<Kind = GenericArgKind<Self>>
38+ + IntoKind<Kind = ty::GenericArgKind<Self>>
4339 + TypeVisitable<Self>;
44-type Term: Copy + Debug + Hash + Eq + IntoKind<Kind = TermKind<Self>> + TypeVisitable<Self>;
40+type Term: Copy + Debug + Hash + Eq + IntoKind<Kind = ty::TermKind<Self>> + TypeVisitable<Self>;
45414642type BoundVarKinds: Copy
4743 + Debug
@@ -51,7 +47,7 @@ pub trait Interner:
5147 + Default;
5248type BoundVarKind: Copy + Debug + Hash + Eq;
534954-type CanonicalVars: Copy + Debug + Hash + Eq + IntoIterator<Item = CanonicalVarInfo<Self>>;
50+type CanonicalVars: Copy + Debug + Hash + Eq + IntoIterator<Item = ty::CanonicalVarInfo<Self>>;
5551type PredefinedOpaques: Copy + Debug + Hash + Eq;
5652type DefiningOpaqueTypes: Copy + Debug + Hash + Default + Eq + TypeVisitable<Self>;
5753type ExternalConstraints: Copy + Debug + Hash + Eq;
@@ -99,23 +95,23 @@ pub trait Interner:
9995type Clause: Clause<Self>;
10096type Clauses: Copy + Debug + Hash + Eq + TypeSuperVisitable<Self> + Flags;
10197102-fn mk_canonical_var_infos(self, infos: &[CanonicalVarInfo<Self>]) -> Self::CanonicalVars;
98+fn mk_canonical_var_infos(self, infos: &[ty::CanonicalVarInfo<Self>]) -> Self::CanonicalVars;
10399104100type GenericsOf: GenericsOf<Self>;
105101fn generics_of(self, def_id: Self::DefId) -> Self::GenericsOf;
106102107103// FIXME: Remove after uplifting `EarlyBinder`
108-fn type_of_instantiated(self, def_id: Self::DefId, args: Self::GenericArgs) -> Self::Ty;
104+fn type_of(self, def_id: Self::DefId) -> ty::EarlyBinder<Self, Self::Ty>;
109105110-fn alias_ty_kind(self, alias: AliasTy<Self>) -> AliasTyKind;
106+fn alias_ty_kind(self, alias: ty::AliasTy<Self>) -> ty::AliasTyKind;
111107112-fn alias_term_kind(self, alias: AliasTerm<Self>) -> AliasTermKind;
108+fn alias_term_kind(self, alias: ty::AliasTerm<Self>) -> ty::AliasTermKind;
113109114110fn trait_ref_and_own_args_for_alias(
115111self,
116112def_id: Self::DefId,
117113args: Self::GenericArgs,
118-) -> (TraitRef<Self>, Self::OwnItemArgs);
114+) -> (ty::TraitRef<Self>, Self::OwnItemArgs);
119115120116fn mk_args(self, args: &[Self::GenericArg]) -> Self::GenericArgs;
121117