trait EvalContextPrivExt<'mir: 'ecx, 'tcx: 'mir, 'ecx>: MiriInterpCxExt<'mir, 'tcx> {
    fn reborrow(
        &mut self,
        place: &MPlaceTy<'tcx, Provenance>,
        size: Size,
        kind: RefKind,
        retag_cause: RetagCause,
        new_tag: SbTag,
        protect: bool
    ) -> InterpResult<'tcx, Option<AllocId>> { ... } fn retag_reference(
        &mut self,
        val: &ImmTy<'tcx, Provenance>,
        kind: RefKind,
        retag_cause: RetagCause,
        protect: bool
    ) -> 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. mutbl can be None to make this a raw pointer.

Implementors§

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