[−][src]Enum rustc_mir::interpret::LocalValue

pub enum LocalValue<Tag = ()> {
    Dead,
    Uninitialized,
    Live(Operand<Tag>),
}

Current value of a local variable

Variants

Dead

This local is not currently alive, and cannot be used at all.

Uninitialized

This local is alive but not yet initialized. It can be written to but not read from or its address taken. Locals get initialized on first write because for unsized locals, we do not know their size before that.

Live(Operand<Tag>)

A normal, live local. Mostly for convenience, we re-use the Operand type here. This is an optimization over just always having a pointer here; we can thus avoid doing an allocation when the local just stores immediate values and never has its address taken.

Trait Implementations

impl<Tag: Clone> Clone for LocalValue<Tag>[src]

impl<Tag: Copy> Copy for LocalValue<Tag>[src]

impl<Tag: Debug> Debug for LocalValue<Tag>[src]

impl<Tag: Eq> Eq for LocalValue<Tag>[src]

impl<'__ctx, Tag> HashStable<StableHashingContext<'__ctx>> for LocalValue<Tag> where
    Tag: HashStable<StableHashingContext<'__ctx>>, 
[src]

impl<Tag: PartialEq> PartialEq<LocalValue<Tag>> for LocalValue<Tag>[src]

impl<Tag> StructuralEq for LocalValue<Tag>[src]

impl<Tag> StructuralPartialEq for LocalValue<Tag>[src]

Auto Trait Implementations

impl<Tag> RefUnwindSafe for LocalValue<Tag> where
    Tag: RefUnwindSafe, 

impl<Tag> Send for LocalValue<Tag> where
    Tag: Send, 

impl<Tag> Sync for LocalValue<Tag> where
    Tag: Sync, 

impl<Tag> Unpin for LocalValue<Tag> where
    Tag: Unpin, 

impl<Tag> UnwindSafe for LocalValue<Tag> where
    Tag: UnwindSafe, 

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized, 
[src]

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone, 
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> WithConstness for T[src]