Enum OperandKind
pub enum OperandKind {
Copy(Place),
Move(Place),
Constant {
konst: StoredConst,
ty: StoredTy,
},
Static(StaticId),
}Variants§
Copy(Place)
Creates a value by loading the given place.
Before drop elaboration, the type of the place must be Copy. After drop elaboration there
is no such requirement.
Move(Place)
Creates a value by performing loading the place, just like the Copy operand.
This may additionally overwrite the place with uninit bytes, depending on how we decide
in UCG#188. You should not emit MIR that may attempt a subsequent second load of this
place without first re-initializing it.
Constant
Constants are already semantically values, and remain unchanged.
Static(StaticId)
NON STANDARD: This kind of operand returns an immutable reference to that static memory. Rustc
handles it with the Constant variant somehow.
Trait Implementations§
§impl Clone for OperandKind
impl Clone for OperandKind
§fn clone(&self) -> OperandKind
fn clone(&self) -> OperandKind
Returns a duplicate 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 more§impl Debug for OperandKind
impl Debug for OperandKind
§impl PartialEq for OperandKind
impl PartialEq for OperandKind
impl Eq for OperandKind
impl StructuralPartialEq for OperandKind
Auto Trait Implementations§
impl Freeze for OperandKind
impl RefUnwindSafe for OperandKind
impl Send for OperandKind
impl Sync for OperandKind
impl Unpin for OperandKind
impl UnwindSafe for OperandKind
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more