Struct rustc_const_eval::interpret::LocalState [−][src]
pub struct LocalState<'tcx, Tag: Provenance = AllocId> {
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>>>Don’t modify if Some, this is only used to prevent computing the layout twice
Implementations
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>>>
pub fn access_mut(
&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, '__ctx, Tag: Provenance> HashStable<StableHashingContext<'__ctx>> for LocalState<'tcx, Tag> where
Tag: HashStable<StableHashingContext<'__ctx>>,
impl<'tcx, '__ctx, Tag: Provenance> HashStable<StableHashingContext<'__ctx>> for LocalState<'tcx, Tag> where
Tag: HashStable<StableHashingContext<'__ctx>>,
impl<'tcx, Tag: PartialEq + Provenance> PartialEq<LocalState<'tcx, Tag>> for LocalState<'tcx, Tag>
impl<'tcx, Tag: PartialEq + Provenance> PartialEq<LocalState<'tcx, Tag>> for LocalState<'tcx, Tag>
This method tests for self and other values to be equal, and is used
by ==. Read more
This method tests for !=.
Auto Trait Implementations
impl<'tcx, Tag = AllocId> !RefUnwindSafe for LocalState<'tcx, Tag>
impl<'tcx, Tag = AllocId> !Send for LocalState<'tcx, Tag>
impl<'tcx, Tag = AllocId> !Sync for LocalState<'tcx, Tag>
impl<'tcx, Tag> Unpin for LocalState<'tcx, Tag> where
Tag: Unpin,
impl<'tcx, Tag = AllocId> !UnwindSafe for LocalState<'tcx, Tag>
Blanket Implementations
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.