Trait rustc_middle::ty::Interner

source ·
pub trait Interner: Sized {
Show 42 associated items type DefId: Clone + Debug + Hash + Ord; type AdtDef: Clone + Debug + Hash + Ord; type GenericArgs: Clone + DebugWithInfcx<Self> + Hash + Ord + IntoIterator<Item = Self::GenericArg>; type GenericArg: Clone + DebugWithInfcx<Self> + Hash + Ord; type Term: Clone + Debug + Hash + Ord; type Binder<T>; type TypeAndMut: Clone + Debug + Hash + Ord; type CanonicalVars: Clone + Debug + Hash + Eq; type Ty: Clone + DebugWithInfcx<Self> + Hash + Ord; type Tys: Clone + Debug + Hash + Ord + IntoIterator<Item = Self::Ty>; type AliasTy: Clone + DebugWithInfcx<Self> + Hash + Ord; type ParamTy: Clone + Debug + Hash + Ord; type BoundTy: Clone + Debug + Hash + Ord; type PlaceholderTy: Clone + Debug + Hash + Ord; type InferTy: Clone + DebugWithInfcx<Self> + Hash + Ord; type ErrorGuaranteed: Clone + Debug + Hash + Ord; type BoundExistentialPredicates: Clone + DebugWithInfcx<Self> + Hash + Ord; type PolyFnSig: Clone + DebugWithInfcx<Self> + Hash + Ord; type AllocId: Clone + Debug + Hash + Ord; type Const: Clone + DebugWithInfcx<Self> + Hash + Ord; type InferConst: Clone + DebugWithInfcx<Self> + Hash + Ord; type AliasConst: Clone + DebugWithInfcx<Self> + Hash + Ord; type PlaceholderConst: Clone + Debug + Hash + Ord; type ParamConst: Clone + Debug + Hash + Ord; type BoundConst: Clone + Debug + Hash + Ord; type ValueConst: Clone + Debug + Hash + Ord; type ExprConst: Clone + DebugWithInfcx<Self> + Hash + Ord; type Region: Clone + DebugWithInfcx<Self> + Hash + Ord; type EarlyBoundRegion: Clone + Debug + Hash + Ord; type BoundRegion: Clone + Debug + Hash + Ord; type FreeRegion: Clone + Debug + Hash + Ord; type InferRegion: Clone + DebugWithInfcx<Self> + Hash + Ord; type PlaceholderRegion: Clone + Debug + Hash + Ord; type Predicate: Clone + Debug + Hash + Eq; type TraitPredicate: Clone + Debug + Hash + Eq; type RegionOutlivesPredicate: Clone + Debug + Hash + Eq; type TypeOutlivesPredicate: Clone + Debug + Hash + Eq; type ProjectionPredicate: Clone + Debug + Hash + Eq; type SubtypePredicate: Clone + Debug + Hash + Eq; type CoercePredicate: Clone + Debug + Hash + Eq; type ClosureKind: Clone + Debug + Hash + Eq; // Required method fn ty_and_mut_to_parts( ty_and_mut: Self::TypeAndMut ) -> (Self::Ty, Mutability);
}

Required Associated Types§

source

type DefId: Clone + Debug + Hash + Ord

source

type AdtDef: Clone + Debug + Hash + Ord

source

type GenericArgs: Clone + DebugWithInfcx<Self> + Hash + Ord + IntoIterator<Item = Self::GenericArg>

source

type GenericArg: Clone + DebugWithInfcx<Self> + Hash + Ord

source

type Term: Clone + Debug + Hash + Ord

source

type Binder<T>

source

type TypeAndMut: Clone + Debug + Hash + Ord

source

type CanonicalVars: Clone + Debug + Hash + Eq

source

type Ty: Clone + DebugWithInfcx<Self> + Hash + Ord

source

type Tys: Clone + Debug + Hash + Ord + IntoIterator<Item = Self::Ty>

source

type AliasTy: Clone + DebugWithInfcx<Self> + Hash + Ord

source

type ParamTy: Clone + Debug + Hash + Ord

source

type BoundTy: Clone + Debug + Hash + Ord

source

type PlaceholderTy: Clone + Debug + Hash + Ord

source

type InferTy: Clone + DebugWithInfcx<Self> + Hash + Ord

source

type ErrorGuaranteed: Clone + Debug + Hash + Ord

source

type BoundExistentialPredicates: Clone + DebugWithInfcx<Self> + Hash + Ord

source

type PolyFnSig: Clone + DebugWithInfcx<Self> + Hash + Ord

source

type AllocId: Clone + Debug + Hash + Ord

source

type Const: Clone + DebugWithInfcx<Self> + Hash + Ord

source

type InferConst: Clone + DebugWithInfcx<Self> + Hash + Ord

source

type AliasConst: Clone + DebugWithInfcx<Self> + Hash + Ord

source

type PlaceholderConst: Clone + Debug + Hash + Ord

source

type ParamConst: Clone + Debug + Hash + Ord

source

type BoundConst: Clone + Debug + Hash + Ord

source

type ValueConst: Clone + Debug + Hash + Ord

source

type ExprConst: Clone + DebugWithInfcx<Self> + Hash + Ord

source

type Region: Clone + DebugWithInfcx<Self> + Hash + Ord

source

type EarlyBoundRegion: Clone + Debug + Hash + Ord

source

type BoundRegion: Clone + Debug + Hash + Ord

source

type FreeRegion: Clone + Debug + Hash + Ord

source

type InferRegion: Clone + DebugWithInfcx<Self> + Hash + Ord

source

type PlaceholderRegion: Clone + Debug + Hash + Ord

source

type Predicate: Clone + Debug + Hash + Eq

source

type TraitPredicate: Clone + Debug + Hash + Eq

source

type RegionOutlivesPredicate: Clone + Debug + Hash + Eq

source

type TypeOutlivesPredicate: Clone + Debug + Hash + Eq

source

type ProjectionPredicate: Clone + Debug + Hash + Eq

source

type SubtypePredicate: Clone + Debug + Hash + Eq

source

type CoercePredicate: Clone + Debug + Hash + Eq

source

type ClosureKind: Clone + Debug + Hash + Eq

Required Methods§

source

fn ty_and_mut_to_parts(ty_and_mut: Self::TypeAndMut) -> (Self::Ty, Mutability)

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'tcx> Interner for TyCtxt<'tcx>

§

type DefId = DefId

§

type AdtDef = AdtDef<'tcx>

§

type GenericArgs = &'tcx List<GenericArg<'tcx>>

§

type GenericArg = GenericArg<'tcx>

§

type Term = Term<'tcx>

§

type Binder<T> = Binder<'tcx, T>

§

type TypeAndMut = TypeAndMut<'tcx>

§

type CanonicalVars = &'tcx List<CanonicalVarInfo<'tcx>>

§

type Ty = Ty<'tcx>

§

type Tys = &'tcx List<Ty<'tcx>>

§

type AliasTy = AliasTy<'tcx>

§

type ParamTy = ParamTy

§

type BoundTy = BoundTy

§

type PlaceholderTy = Placeholder<BoundTy>

§

type InferTy = InferTy

§

type ErrorGuaranteed = ErrorGuaranteed

§

type BoundExistentialPredicates = &'tcx List<Binder<'tcx, ExistentialPredicate<'tcx>>>

§

type PolyFnSig = Binder<'tcx, FnSig<'tcx>>

§

type AllocId = AllocId

§

type Const = Const<'tcx>

§

type InferConst = InferConst

§

type AliasConst = UnevaluatedConst<'tcx>

§

type PlaceholderConst = Placeholder<BoundVar>

§

type ParamConst = ParamConst

§

type BoundConst = BoundVar

§

type ValueConst = ValTree<'tcx>

§

type ExprConst = Expr<'tcx>

§

type Region = Region<'tcx>

§

type EarlyBoundRegion = EarlyBoundRegion

§

type BoundRegion = BoundRegion

§

type FreeRegion = FreeRegion

§

type InferRegion = RegionVid

§

type PlaceholderRegion = Placeholder<BoundRegion>

§

type Predicate = Predicate<'tcx>

§

type TraitPredicate = TraitPredicate<'tcx>

§

type RegionOutlivesPredicate = OutlivesPredicate<Region<'tcx>, Region<'tcx>>

§

type TypeOutlivesPredicate = OutlivesPredicate<Ty<'tcx>, Region<'tcx>>

§

type ProjectionPredicate = ProjectionPredicate<'tcx>

§

type SubtypePredicate = SubtypePredicate<'tcx>

§

type CoercePredicate = CoercePredicate<'tcx>

§

type ClosureKind = ClosureKind