Trait rustc_type_ir::Interner

source ·
pub trait Interner: Sized + Copy + IrPrint<TraitRef<Self>> + IrPrint<TraitPredicate<Self>> + IrPrint<ExistentialTraitRef<Self>> + IrPrint<ExistentialProjection<Self>> + IrPrint<ProjectionPredicate<Self>> + IrPrint<NormalizesTo<Self>> + IrPrint<SubtypePredicate<Self>> + IrPrint<CoercePredicate<Self>> {
Show 50 associated items type DefId: Copy + Debug + Hash + Eq; type DefiningOpaqueTypes: Copy + Debug + Hash + Default + Eq + TypeVisitable<Self>; type AdtDef: Copy + Debug + Hash + Eq; type GenericArgs: GenericArgs<Self>; type GenericArg: Copy + DebugWithInfcx<Self> + Hash + Eq; type Term: Copy + Debug + Hash + Eq; type Binder<T: TypeVisitable<Self>>: BoundVars<Self> + TypeSuperVisitable<Self>; type BoundVars: IntoIterator<Item = Self::BoundVar>; type BoundVar; type CanonicalVars: Copy + Debug + Hash + Eq + IntoIterator<Item = CanonicalVarInfo<Self>>; type Ty: Ty<Self>; type Tys: Copy + Debug + Hash + Eq + IntoIterator<Item = Self::Ty>; type AliasTy: AliasTy<Self>; type ParamTy: Copy + Debug + Hash + Eq; type BoundTy: Copy + Debug + Hash + Eq; type PlaceholderTy: PlaceholderLike; type ErrorGuaranteed: Copy + Debug + Hash + Eq; type BoundExistentialPredicates: Copy + DebugWithInfcx<Self> + Hash + Eq; type PolyFnSig: Copy + DebugWithInfcx<Self> + Hash + Eq; type AllocId: Copy + Debug + Hash + Eq; type Pat: Copy + Debug + Hash + Eq + DebugWithInfcx<Self>; type Const: Const<Self>; type AliasConst: Copy + DebugWithInfcx<Self> + Hash + Eq; type PlaceholderConst: PlaceholderLike; type ParamConst: Copy + Debug + Hash + Eq; type BoundConst: Copy + Debug + Hash + Eq; type ValueConst: Copy + Debug + Hash + Eq; type ExprConst: Copy + DebugWithInfcx<Self> + Hash + Eq; type Region: Region<Self>; type EarlyParamRegion: Copy + Debug + Hash + Eq; type LateParamRegion: Copy + Debug + Hash + Eq; type BoundRegion: Copy + Debug + Hash + Eq; type InferRegion: Copy + DebugWithInfcx<Self> + Hash + Eq; type PlaceholderRegion: PlaceholderLike; type Predicate: Predicate<Self>; type TraitPredicate: Copy + Debug + Hash + Eq; type RegionOutlivesPredicate: Copy + Debug + Hash + Eq; type TypeOutlivesPredicate: Copy + Debug + Hash + Eq; type ProjectionPredicate: Copy + Debug + Hash + Eq; type NormalizesTo: Copy + Debug + Hash + Eq; type SubtypePredicate: Copy + Debug + Hash + Eq; type CoercePredicate: Copy + Debug + Hash + Eq; type ClosureKind: Copy + Debug + Hash + Eq; type Clauses: Copy + Debug + Hash + Eq + TypeSuperVisitable<Self> + Flags; type GenericsOf: GenericsOf<Self>; // Required methods fn mk_canonical_var_infos( self, infos: &[CanonicalVarInfo<Self>] ) -> Self::CanonicalVars; fn generics_of(self, def_id: Self::DefId) -> Self::GenericsOf; fn mk_args(self, args: &[Self::GenericArg]) -> Self::GenericArgs; fn check_and_mk_args( self, def_id: Self::DefId, args: impl IntoIterator<Item: Into<Self::GenericArg>> ) -> Self::GenericArgs; fn parent(self, def_id: Self::DefId) -> Self::DefId;
}

Required Associated Types§

source

type DefId: Copy + Debug + Hash + Eq

source

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

source

type AdtDef: Copy + Debug + Hash + Eq

source

type GenericArgs: GenericArgs<Self>

source

type GenericArg: Copy + DebugWithInfcx<Self> + Hash + Eq

source

type Term: Copy + Debug + Hash + Eq

source

type Binder<T: TypeVisitable<Self>>: BoundVars<Self> + TypeSuperVisitable<Self>

source

type BoundVars: IntoIterator<Item = Self::BoundVar>

source

type BoundVar

source

type CanonicalVars: Copy + Debug + Hash + Eq + IntoIterator<Item = CanonicalVarInfo<Self>>

source

type Ty: Ty<Self>

source

type Tys: Copy + Debug + Hash + Eq + IntoIterator<Item = Self::Ty>

source

type AliasTy: AliasTy<Self>

source

type ParamTy: Copy + Debug + Hash + Eq

source

type BoundTy: Copy + Debug + Hash + Eq

source

type PlaceholderTy: PlaceholderLike

source

type ErrorGuaranteed: Copy + Debug + Hash + Eq

source

type BoundExistentialPredicates: Copy + DebugWithInfcx<Self> + Hash + Eq

source

type PolyFnSig: Copy + DebugWithInfcx<Self> + Hash + Eq

source

type AllocId: Copy + Debug + Hash + Eq

source

type Pat: Copy + Debug + Hash + Eq + DebugWithInfcx<Self>

source

type Const: Const<Self>

source

type AliasConst: Copy + DebugWithInfcx<Self> + Hash + Eq

source

type PlaceholderConst: PlaceholderLike

source

type ParamConst: Copy + Debug + Hash + Eq

source

type BoundConst: Copy + Debug + Hash + Eq

source

type ValueConst: Copy + Debug + Hash + Eq

source

type ExprConst: Copy + DebugWithInfcx<Self> + Hash + Eq

source

type Region: Region<Self>

source

type EarlyParamRegion: Copy + Debug + Hash + Eq

source

type LateParamRegion: Copy + Debug + Hash + Eq

source

type BoundRegion: Copy + Debug + Hash + Eq

source

type InferRegion: Copy + DebugWithInfcx<Self> + Hash + Eq

source

type PlaceholderRegion: PlaceholderLike

source

type Predicate: Predicate<Self>

source

type TraitPredicate: Copy + Debug + Hash + Eq

source

type RegionOutlivesPredicate: Copy + Debug + Hash + Eq

source

type TypeOutlivesPredicate: Copy + Debug + Hash + Eq

source

type ProjectionPredicate: Copy + Debug + Hash + Eq

source

type NormalizesTo: Copy + Debug + Hash + Eq

source

type SubtypePredicate: Copy + Debug + Hash + Eq

source

type CoercePredicate: Copy + Debug + Hash + Eq

source

type ClosureKind: Copy + Debug + Hash + Eq

source

type Clauses: Copy + Debug + Hash + Eq + TypeSuperVisitable<Self> + Flags

source

type GenericsOf: GenericsOf<Self>

Required Methods§

source

fn mk_canonical_var_infos( self, infos: &[CanonicalVarInfo<Self>] ) -> Self::CanonicalVars

source

fn generics_of(self, def_id: Self::DefId) -> Self::GenericsOf

source

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

source

fn check_and_mk_args( self, def_id: Self::DefId, args: impl IntoIterator<Item: Into<Self::GenericArg>> ) -> Self::GenericArgs

source

fn parent(self, def_id: Self::DefId) -> Self::DefId

Object Safety§

This trait is not object safe.

Implementors§