pub(super) enum LocalValue<Prov: Provenance = CtfeProvenance> {
Dead,
Live(Operand<Prov>),
}Expand description
Current value of a local variable
This does not store the type of the local; the type is given by body.local_decls and can never
change, so by not storing here we avoid having to maintain that as an invariant.
Variants§
Dead
This local is not currently alive, and cannot be used at all.
Live(Operand<Prov>)
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§
source§impl<Prov: Clone + Provenance> Clone for LocalValue<Prov>
impl<Prov: Clone + Provenance> Clone for LocalValue<Prov>
source§fn clone(&self) -> LocalValue<Prov>
fn clone(&self) -> LocalValue<Prov>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl<Prov: Debug + Provenance> Debug for LocalValue<Prov>
impl<Prov: Debug + Provenance> Debug for LocalValue<Prov>
impl<Prov: Copy + Provenance> Copy for LocalValue<Prov>
Auto Trait Implementations§
impl<Prov> RefUnwindSafe for LocalValue<Prov>where
Prov: RefUnwindSafe,
impl<Prov> Send for LocalValue<Prov>where
Prov: Send,
impl<Prov> Sync for LocalValue<Prov>where
Prov: Sync,
impl<Prov> Unpin for LocalValue<Prov>where
Prov: Unpin,
impl<Prov> UnwindSafe for LocalValue<Prov>where
Prov: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn 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.