pub enum OperandKind {
Copy(Place),
Move(Place),
Constant(Const),
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(Const)
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§
Source§impl Clone for OperandKind
impl Clone for OperandKind
Source§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 moreSource§impl Debug for OperandKind
impl Debug for OperandKind
Source§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
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