pub trait EvalContextExt<'tcx>: MiriInterpCxExt<'tcx> {
// Provided methods
fn sb_retag_ptr_value(
&mut self,
val: &ImmTy<'tcx>,
ty: Ty<'tcx>,
mode: RetagMode,
) -> InterpResult<'tcx, Option<ImmTy<'tcx>>> { ... }
fn sb_protect_place(
&mut self,
place: &MPlaceTy<'tcx>,
) -> InterpResult<'tcx, MPlaceTy<'tcx>> { ... }
fn sb_expose_tag(
&self,
alloc_id: AllocId,
tag: BorTag,
) -> InterpResult<'tcx> { ... }
fn print_stacks(&mut self, alloc_id: AllocId) -> InterpResult<'tcx> { ... }
}Provided Methods§
fn sb_retag_ptr_value( &mut self, val: &ImmTy<'tcx>, ty: Ty<'tcx>, mode: RetagMode, ) -> InterpResult<'tcx, Option<ImmTy<'tcx>>>
Sourcefn sb_protect_place(
&mut self,
place: &MPlaceTy<'tcx>,
) -> InterpResult<'tcx, MPlaceTy<'tcx>>
fn sb_protect_place( &mut self, place: &MPlaceTy<'tcx>, ) -> InterpResult<'tcx, MPlaceTy<'tcx>>
Protect a place so that it cannot be used any more for the duration of the current function call.
This is used to ensure soundness of in-place function argument/return passing.
Sourcefn sb_expose_tag(&self, alloc_id: AllocId, tag: BorTag) -> InterpResult<'tcx>
fn sb_expose_tag(&self, alloc_id: AllocId, tag: BorTag) -> InterpResult<'tcx>
Mark the given tag as exposed. It was found on a pointer with the given AllocId.