trait EvalContextPrivExt<'mir: 'ecx, 'tcx: 'mir, 'ecx>: MiriInterpCxExt<'mir, 'tcx> {
    fn sb_reborrow(
        &mut self,
        place: &MPlaceTy<'tcx, Provenance>,
        size: Size,
        new_perm: NewPermission,
        new_tag: BorTag,
        retag_cause: RetagCause
    ) -> InterpResult<'tcx, Option<AllocId>> { ... } fn sb_retag_reference(
        &mut self,
        val: &ImmTy<'tcx, Provenance>,
        new_perm: NewPermission,
        cause: RetagCause
    ) -> InterpResult<'tcx, ImmTy<'tcx, Provenance>> { ... } }

Provided Methods§

Returns the AllocId the reborrow was done in, if some actual borrow stack manipulation happened.

Retags an indidual pointer, returning the retagged version. kind indicates what kind of reference is being created.

Implementors§

Retagging/reborrowing. There is some policy in here, such as which permissions to grant for which references, and when to add protectors.