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 IntTy

§

type T = IntTy

source§

fn stable(&self, _: &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 UnOp

§

type T = UnOp

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 UnwindAction

§

type T = UnwindAction

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 Movability

§

type T = Movability

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 TermKind<'tcx>

§

type T = TermKind

source§

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

source§

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

§

type T = BoundRegionKind

source§

fn stable(&self, _: &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 BoundTyKind

§

type T = BoundTyKind

source§

fn stable(&self, _: &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 ExistentialProjection<'tcx>

§

type T = ExistentialProjection

source§

fn stable(&self, tables: &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 BorrowKind

§

type T = BorrowKind

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> Stable<'tcx> for GeneratorKind

§

type T = GeneratorKind

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 PointerCoercion

§

type T = PointerCoercion

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 BoundTy

§

type T = BoundTy

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 FieldIdx

§

type T = usize

source§

fn stable(&self, _: &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 Place<'tcx>

§

type T = Place

source§

fn stable(&self, _: &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 Terminator<'tcx>

§

type T = Terminator

source§

fn stable(&self, tables: &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 Ty<'tcx>

§

type T = TyKind

source§

fn stable(&self, tables: &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 AssertMessage<'tcx>

§

type T = AssertMessage

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 UintTy

§

type T = UintTy

source§

fn stable(&self, _: &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 GenericArgKind<'tcx>

§

type T = GenericArgKind

source§

fn stable(&self, tables: &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> Stable<'tcx> for BoundVariableKind

§

type T = BoundVariableKind

source§

fn stable(&self, tables: &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 BinOp

§

type T = BinOp

source§

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

Implementors§