pub(crate) trait Stable<'tcx> {
    type T;

    // Required method
    fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T;
}
Expand description

Trait used to convert between an internal MIR type to a Stable MIR type.

Required Associated Types§

source

type T

The stable representation of the type implementing Stable.

Required Methods§

source

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

Converts an object to the equivalent Stable MIR representation.

Implementations on Foreign Types§

source§

impl<'tcx> Stable<'tcx> for Variance

§

type T = Variance

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for GenericArgKind<'tcx>

§

type T = GenericArgKind

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for FloatTy

§

type T = FloatTy

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for BoundTyKind

§

type T = BoundTyKind

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for Region<'tcx>

§

type T = Region

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for Unsafety

§

type T = Safety

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx, S, V> Stable<'tcx> for EarlyBinder<S>where S: Stable<'tcx, T = V>,

§

type T = EarlyBinder<V>

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for NullOp<'tcx>

§

type T = NullOp

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for Ty<'tcx>

§

type T = TyKind

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for ConstOperand<'tcx>

§

type T = Constant

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for UserTypeProjection

§

type T = UserTypeProjection

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for InlineAsmOperand<'tcx>

§

type T = InlineAsmOperand

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for TerminatorKind<'tcx>

§

type T = TerminatorKind

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for UnOp

§

type T = UnOp

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for ParamTy

§

type T = ParamTy

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for CoercePredicate<'tcx>

§

type T = CoercePredicate

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for Generics

§

type T = Generics

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for Allocation

§

type T = Allocation

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for ClosureKind

§

type T = ClosureKind

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for DefKind

§

type T = Opaque

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for Place<'tcx>

§

type T = Place

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for BinOp

§

type T = BinOp

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for SubtypePredicate<'tcx>

§

type T = SubtypePredicate

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for TraitRef<'tcx>

§

type T = TraitRef

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for BoundTy

§

type T = BoundTy

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for GenericArgs<'tcx>

§

type T = GenericArgs

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for TraitSpecializationKind

§

type T = TraitSpecializationKind

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for ParamConst

§

type T = ParamConst

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for ExistentialTraitRef<'tcx>

§

type T = ExistentialTraitRef

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for Operand<'tcx>

§

type T = Operand

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for BorrowKind

§

type T = BorrowKind

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for AggregateKind<'tcx>

§

type T = AggregateKind

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for Const<'tcx>

§

type T = Const

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for TermKind<'tcx>

§

type T = TermKind

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for FakeReadCause

§

type T = FakeReadCause

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for ClauseKind<'tcx>

§

type T = ClauseKind

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for BoundVariableKind

§

type T = BoundVariableKind

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for IntTy

§

type T = IntTy

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for AliasTy<'tcx>

§

type T = AliasTy

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for TraitPredicate<'tcx>

§

type T = TraitPredicate

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for StatementKind<'tcx>

§

type T = StatementKind

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for ProjectionPredicate<'tcx>

§

type T = ProjectionPredicate

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for Statement<'tcx>

§

type T = Statement

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for BoundRegionKind

§

type T = BoundRegionKind

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for TraitDef

§

type T = TraitDecl

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for MutBorrowKind

§

type T = MutBorrowKind

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for PointerCoercion

§

type T = PointerCoercion

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for Terminator<'tcx>

§

type T = Terminator

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for GeneratorKind

§

type T = GeneratorKind

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for FieldIdx

§

type T = usize

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for CastKind

§

type T = CastKind

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for AliasRelationDirection

§

type T = AliasRelationDirection

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for VariantIdx

§

type T = usize

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for ExistentialPredicate<'tcx>

§

type T = ExistentialPredicate

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for FnSig<'tcx>

§

type T = FnSig

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for Movability

§

type T = Movability

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for Local

§

type T = usize

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for Span

§

type T = Span

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for UintTy

§

type T = UintTy

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for PredicateKind<'tcx>

§

type T = PredicateKind

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for NonDivergingIntrinsic<'tcx>

§

type T = NonDivergingIntrinsic

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for RetagKind

§

type T = RetagKind

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for AliasKind

§

type T = AliasKind

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx, S, V> Stable<'tcx> for Binder<'tcx, S>where S: Stable<'tcx, T = V>,

§

type T = Binder<V>

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for Mutability

§

type T = Mutability

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for AssertMessage<'tcx>

§

type T = AssertMessage

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for UnwindAction

§

type T = UnwindAction

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for ExistentialProjection<'tcx>

§

type T = ExistentialProjection

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for ImplPolarity

§

type T = ImplPolarity

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for Rvalue<'tcx>

§

type T = Rvalue

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for GenericParamDef

§

type T = GenericParamDef

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx, A, B, U, V> Stable<'tcx> for OutlivesPredicate<A, B>where A: Stable<'tcx, T = U>, B: Stable<'tcx, T = V>,

§

type T = OutlivesPredicate<U, V>

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for Const<'tcx>

§

type T = Const

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for DynKind

§

type T = DynKind

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for GenericParamDefKind

§

type T = GenericParamDefKind

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for UserTypeAnnotationIndex

§

type T = usize

source§

fn stable(&self, _: &mut Tables<'tcx>) -> Self::T

source§

impl<'tcx> Stable<'tcx> for RegionKind<'tcx>

§

type T = RegionKind

source§

fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T

Implementors§