Struct rustc_const_eval::interpret::LocalState
source · pub struct LocalState<'tcx, Prov: Provenance = AllocId> {
pub value: LocalValue<Prov>,
pub layout: Cell<Option<TyAndLayout<'tcx>>>,
}
Expand description
State of a local variable including a memoized layout
Fields
value: LocalValue<Prov>
layout: Cell<Option<TyAndLayout<'tcx>>>
Don’t modify if Some
, this is only used to prevent computing the layout twice
Implementations
sourceimpl<'tcx, Prov: Provenance + 'static> LocalState<'tcx, Prov>
impl<'tcx, Prov: Provenance + 'static> LocalState<'tcx, Prov>
sourcepub fn access(&self) -> InterpResult<'tcx, &Operand<Prov>>
pub fn access(&self) -> InterpResult<'tcx, &Operand<Prov>>
Read the local’s value or error if the local is not yet live or not live anymore.
sourcepub fn access_mut(&mut self) -> InterpResult<'tcx, &mut Operand<Prov>>
pub fn access_mut(&mut self) -> InterpResult<'tcx, &mut Operand<Prov>>
Overwrite the local. If the local can be overwritten in place, return a reference
to do so; otherwise return the MemPlace
to consult instead.
Note: This may only be invoked from the Machine::access_local_mut
hook and not from
anywhere else. You may be invalidating machine invariants if you do!
Trait Implementations
sourceimpl<'tcx, Prov: Clone + Provenance> Clone for LocalState<'tcx, Prov>
impl<'tcx, Prov: Clone + Provenance> Clone for LocalState<'tcx, Prov>
sourcefn clone(&self) -> LocalState<'tcx, Prov>
fn clone(&self) -> LocalState<'tcx, Prov>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresourceimpl<'tcx, Prov: Debug + Provenance> Debug for LocalState<'tcx, Prov>
impl<'tcx, Prov: Debug + Provenance> Debug for LocalState<'tcx, Prov>
Auto Trait Implementations
impl<'tcx, Prov = AllocId> !RefUnwindSafe for LocalState<'tcx, Prov>
impl<'tcx, Prov> Send for LocalState<'tcx, Prov>where
Prov: Send,
impl<'tcx, Prov = AllocId> !Sync for LocalState<'tcx, Prov>
impl<'tcx, Prov> Unpin for LocalState<'tcx, Prov>where
Prov: Unpin,
impl<'tcx, Prov = AllocId> !UnwindSafe for LocalState<'tcx, Prov>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Layout
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.