[−][src]Struct rustc_mir::interpret::LocalState
State of a local variable including a memoized layout
Fields
value: LocalValue<Tag>layout: Cell<Option<TyAndLayout<'tcx>>>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]
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]
&mut self
) -> InterpResult<'tcx, Result<&mut LocalValue<Tag>, MemPlace<Tag>>>
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]
pub fn clone(&self) -> LocalState<'tcx, Tag>[src]
pub fn clone_from(&mut self, source: &Self)1.0.0[src]
impl<'tcx, Tag: Eq> Eq for LocalState<'tcx, Tag>[src]
impl<'tcx, '__ctx, Tag> HashStable<StableHashingContext<'__ctx>> for LocalState<'tcx, Tag> where
Tag: HashStable<StableHashingContext<'__ctx>>, [src]
Tag: HashStable<StableHashingContext<'__ctx>>,
pub 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]
pub fn eq(&self, other: &LocalState<'tcx, Tag>) -> bool[src]
pub fn ne(&self, other: &LocalState<'tcx, Tag>) -> bool[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> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.