Struct rustc_mir::interpret::eval_context::LocalState [−][src]
pub struct LocalState<'tcx, Tag = ()> { pub value: LocalValue<Tag>, pub layout: Cell<Option<TyAndLayout<'tcx>>>, }
Expand description
State of a local variable including a memoized layout
Fields
value: LocalValue<Tag>layout: Cell<Option<TyAndLayout<'tcx>>>Expand description
Don’t modify if Some, this is only used to prevent computing the layout twice
Implementations
impl<'tcx, Tag: Copy + 'static> LocalState<'tcx, Tag>[src]
impl<'tcx, Tag: Copy + 'static> LocalState<'tcx, Tag>[src]pub fn access(&self) -> InterpResult<'tcx, Operand<Tag>>[src]
pub fn access(&self) -> InterpResult<'tcx, Operand<Tag>>[src]Read the local’s value or error if the local is not yet live or not live anymore.
Note: This may only be invoked from the Machine::access_local hook and not from
anywhere else. You may be invalidating machine invariants if you do!
pub fn access_mut(
&mut self
) -> InterpResult<'tcx, Result<&mut LocalValue<Tag>, MemPlace<Tag>>>[src]
pub fn access_mut(
&mut self
) -> InterpResult<'tcx, Result<&mut LocalValue<Tag>, MemPlace<Tag>>>[src]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
impl<'tcx, Tag: Clone> Clone for LocalState<'tcx, Tag>[src]
impl<'tcx, Tag: Clone> Clone for LocalState<'tcx, Tag>[src]fn clone(&self) -> LocalState<'tcx, Tag>[src]
fn clone(&self) -> LocalState<'tcx, Tag>[src]Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)1.0.0[src]Performs copy-assignment from source. Read more
impl<'tcx, '__ctx, Tag> HashStable<StableHashingContext<'__ctx>> for LocalState<'tcx, Tag> where
Tag: HashStable<StableHashingContext<'__ctx>>, [src]
impl<'tcx, '__ctx, Tag> HashStable<StableHashingContext<'__ctx>> for LocalState<'tcx, Tag> where
Tag: HashStable<StableHashingContext<'__ctx>>, [src]fn hash_stable(
&self,
__hcx: &mut StableHashingContext<'__ctx>,
__hasher: &mut StableHasher
)[src]
&self,
__hcx: &mut StableHashingContext<'__ctx>,
__hasher: &mut StableHasher
)
impl<'tcx, Tag: PartialEq> PartialEq<LocalState<'tcx, Tag>> for LocalState<'tcx, Tag>[src]
impl<'tcx, Tag: PartialEq> PartialEq<LocalState<'tcx, Tag>> for LocalState<'tcx, Tag>[src]fn eq(&self, other: &LocalState<'tcx, Tag>) -> bool[src]
fn eq(&self, other: &LocalState<'tcx, Tag>) -> bool[src]This method tests for self and other values to be equal, and is used
by ==. Read more
fn ne(&self, other: &LocalState<'tcx, Tag>) -> bool[src]
fn ne(&self, other: &LocalState<'tcx, Tag>) -> bool[src]This method tests for !=.
impl<'tcx, Tag: Eq> Eq for LocalState<'tcx, Tag>[src]
impl<'tcx, Tag> StructuralEq for LocalState<'tcx, Tag>[src]
impl<'tcx, Tag> StructuralPartialEq for LocalState<'tcx, Tag>[src]
Auto Trait Implementations
impl<'tcx, Tag = ()> !RefUnwindSafe for LocalState<'tcx, Tag>
impl<'tcx, Tag = ()> !Send for LocalState<'tcx, Tag>
impl<'tcx, Tag = ()> !Sync for LocalState<'tcx, Tag>
impl<'tcx, Tag> Unpin for LocalState<'tcx, Tag> where
Tag: Unpin,
Tag: Unpin,
impl<'tcx, Tag = ()> !UnwindSafe for LocalState<'tcx, Tag>
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone, [src]
impl<T> ToOwned for T where
T: Clone, [src]type Owned = T
type Owned = TThe resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn to_owned(&self) -> T[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)[src]
pub fn clone_into(&self, target: &mut T)[src]🔬 This is a nightly-only experimental API. (toowned_clone_into)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> WithConstness for T[src]
impl<T> WithConstness for T[src]