trait EvalContextPrivExt<'mir: 'ecx, 'tcx: 'mir, 'ecx>: MiriInterpCxExt<'mir, 'tcx> {
    // Provided methods
    fn tb_reborrow(
        &mut self,
        place: &MPlaceTy<'tcx, Provenance>,
        ptr_size: Size,
        new_perm: NewPermission,
        new_tag: BorTag
    ) -> InterpResult<'tcx, Option<Provenance>> { ... }
    fn tb_retag_place(
        &mut self,
        place: &MPlaceTy<'tcx, Provenance>,
        new_perm: NewPermission
    ) -> InterpResult<'tcx, MPlaceTy<'tcx, Provenance>> { ... }
    fn tb_retag_reference(
        &mut self,
        val: &ImmTy<'tcx, Provenance>,
        new_perm: NewPermission
    ) -> InterpResult<'tcx, ImmTy<'tcx, Provenance>> { ... }
}

Provided Methods§

source

fn tb_reborrow( &mut self, place: &MPlaceTy<'tcx, Provenance>, ptr_size: Size, new_perm: NewPermission, new_tag: BorTag ) -> InterpResult<'tcx, Option<Provenance>>

Returns the provenance that should be used henceforth.

source

fn tb_retag_place( &mut self, place: &MPlaceTy<'tcx, Provenance>, new_perm: NewPermission ) -> InterpResult<'tcx, MPlaceTy<'tcx, Provenance>>

source

fn tb_retag_reference( &mut self, val: &ImmTy<'tcx, Provenance>, new_perm: NewPermission ) -> InterpResult<'tcx, ImmTy<'tcx, Provenance>>

Retags an individual pointer, returning the retagged version.

Implementors§

source§

impl<'mir: 'ecx, 'tcx: 'mir, 'ecx> EvalContextPrivExt<'mir, 'tcx, 'ecx> for MiriInterpCx<'mir, 'tcx>

Retagging/reborrowing. Policy on which permission to grant to each pointer should be left to the implementation of NewPermission.