pub trait EvalContextExt<'mir, 'tcx: 'mir>: MiriInterpCxExt<'mir, 'tcx> {
    // Provided methods
    fn handle_miri_start_panic(
        &mut self,
        abi: Abi,
        link_name: Symbol,
        args: &[OpTy<'tcx, Provenance>],
        unwind: UnwindAction
    ) -> InterpResult<'tcx> { ... }
    fn handle_try(
        &mut self,
        args: &[OpTy<'tcx, Provenance>],
        dest: &PlaceTy<'tcx, Provenance>,
        ret: BasicBlock
    ) -> InterpResult<'tcx> { ... }
    fn handle_stack_pop_unwind(
        &mut self,
        extra: FrameExtra<'tcx>,
        unwinding: bool
    ) -> InterpResult<'tcx, StackPopJump> { ... }
    fn start_panic(
        &mut self,
        msg: &str,
        unwind: UnwindAction
    ) -> InterpResult<'tcx> { ... }
    fn start_panic_nounwind(&mut self, msg: &str) -> InterpResult<'tcx> { ... }
    fn assert_panic(
        &mut self,
        msg: &AssertMessage<'tcx>,
        unwind: UnwindAction
    ) -> InterpResult<'tcx> { ... }
}

Provided Methods§

source

fn handle_miri_start_panic( &mut self, abi: Abi, link_name: Symbol, args: &[OpTy<'tcx, Provenance>], unwind: UnwindAction ) -> InterpResult<'tcx>

Handles the special miri_start_panic intrinsic, which is called by libpanic_unwind to delegate the actual unwinding process to Miri.

source

fn handle_try( &mut self, args: &[OpTy<'tcx, Provenance>], dest: &PlaceTy<'tcx, Provenance>, ret: BasicBlock ) -> InterpResult<'tcx>

Handles the try intrinsic, the underlying implementation of std::panicking::try.

source

fn handle_stack_pop_unwind( &mut self, extra: FrameExtra<'tcx>, unwinding: bool ) -> InterpResult<'tcx, StackPopJump>

source

fn start_panic(&mut self, msg: &str, unwind: UnwindAction) -> InterpResult<'tcx>

Start a panic in the interpreter with the given message as payload.

source

fn start_panic_nounwind(&mut self, msg: &str) -> InterpResult<'tcx>

Start a non-unwinding panic in the interpreter with the given message as payload.

source

fn assert_panic( &mut self, msg: &AssertMessage<'tcx>, unwind: UnwindAction ) -> InterpResult<'tcx>

Implementors§

source§

impl<'mir, 'tcx: 'mir> EvalContextExt<'mir, 'tcx> for MiriInterpCx<'mir, 'tcx>