pub trait EvalContextExt<'tcx>: MiriInterpCxExt<'tcx> {
// Provided methods
fn retag_ptr_value(
&mut self,
val: &ImmTy<'tcx>,
ty: Ty<'tcx>,
) -> InterpResult<'tcx, Option<ImmTy<'tcx>>> { ... }
fn with_retag_mode<T>(
&mut self,
mode: RetagMode,
f: impl FnOnce(&mut Self) -> InterpResult<'tcx, T>,
) -> InterpResult<'tcx, T> { ... }
fn protect_place(
&mut self,
place: &MPlaceTy<'tcx>,
) -> InterpResult<'tcx, MPlaceTy<'tcx>> { ... }
fn expose_tag(&self, alloc_id: AllocId, tag: BorTag) -> InterpResult<'tcx> { ... }
fn give_pointer_debug_name(
&mut self,
ptr: Pointer,
nth_parent: u8,
name: &str,
) -> InterpResult<'tcx> { ... }
fn print_borrow_state(
&mut self,
alloc_id: AllocId,
show_unnamed: bool,
) -> InterpResult<'tcx> { ... }
fn on_stack_pop(
&self,
frame: &Frame<'tcx, Provenance, FrameExtra<'tcx>>,
) -> InterpResult<'tcx> { ... }
}Provided Methods§
fn retag_ptr_value( &mut self, val: &ImmTy<'tcx>, ty: Ty<'tcx>, ) -> InterpResult<'tcx, Option<ImmTy<'tcx>>>
fn with_retag_mode<T>( &mut self, mode: RetagMode, f: impl FnOnce(&mut Self) -> InterpResult<'tcx, T>, ) -> InterpResult<'tcx, T>
fn protect_place( &mut self, place: &MPlaceTy<'tcx>, ) -> InterpResult<'tcx, MPlaceTy<'tcx>>
fn expose_tag(&self, alloc_id: AllocId, tag: BorTag) -> InterpResult<'tcx>
fn give_pointer_debug_name( &mut self, ptr: Pointer, nth_parent: u8, name: &str, ) -> InterpResult<'tcx>
fn print_borrow_state( &mut self, alloc_id: AllocId, show_unnamed: bool, ) -> InterpResult<'tcx>
fn on_stack_pop( &self, frame: &Frame<'tcx, Provenance, FrameExtra<'tcx>>, ) -> InterpResult<'tcx>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.