Use EarlyBinder in rustc_type_ir, simplify imports · rust-lang/rust@f922929

@@ -7,26 +7,22 @@ use crate::inherent::*;

77

use crate::ir_print::IrPrint;

88

use crate::solve::inspect::CanonicalGoalEvaluationStep;

99

use 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};

15111612

pub trait Interner:

1713

Sized

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

{

3127

type DefId: Copy + Debug + Hash + Eq + TypeVisitable<Self>;

3228

type 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>;

45414642

type BoundVarKinds: Copy

4743

+ Debug

@@ -51,7 +47,7 @@ pub trait Interner:

5147

+ Default;

5248

type 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>>;

5551

type PredefinedOpaques: Copy + Debug + Hash + Eq;

5652

type DefiningOpaqueTypes: Copy + Debug + Hash + Default + Eq + TypeVisitable<Self>;

5753

type ExternalConstraints: Copy + Debug + Hash + Eq;

@@ -99,23 +95,23 @@ pub trait Interner:

9995

type Clause: Clause<Self>;

10096

type 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;

10399104100

type GenericsOf: GenericsOf<Self>;

105101

fn 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;

113109114110

fn trait_ref_and_own_args_for_alias(

115111

self,

116112

def_id: Self::DefId,

117113

args: Self::GenericArgs,

118-

) -> (TraitRef<Self>, Self::OwnItemArgs);

114+

) -> (ty::TraitRef<Self>, Self::OwnItemArgs);

119115120116

fn mk_args(self, args: &[Self::GenericArg]) -> Self::GenericArgs;

121117