pub enum OutputVarReferenceInfo {
SameAsParam {
param_idx: usize,
},
PartialParam {
param_idx: usize,
},
NewTempVar {
idx: usize,
},
NewLocalVar,
Deferred(DeferredOutputKind),
SimpleDerefs,
ZeroSized,
}
Expand description
Information regarding the reference created as an output of a library function.
For example, whether the reference is equal to one of the parameters (as in the dup() function), or whether it’s newly allocated local variable.
Variants§
SameAsParam
The output value is exactly the same as one of the parameters.
PartialParam
The output value is a part of one of the parameters. For example, it may be the first element of a struct.
Information, such as whether the parameter was a temporary or local variable, will be copied to the output variable.
NewTempVar
The output was allocated as a temporary variable and it is at the top of the stack (contiguously).
Fields
NewLocalVar
The output was allocated as a local variable.
Deferred(DeferredOutputKind)
The output is the result of a computation. For example [ap] + [fp]
,
[ap + 1] * [fp - 3]
, [ap] + 3
, 7
.
SimpleDerefs
All the output cells are of the form [ap/fp + const]
. For example, ([ap + 1], [fp])
.
ZeroSized
The output is a of size 0.
Trait Implementations§
source§impl Clone for OutputVarReferenceInfo
impl Clone for OutputVarReferenceInfo
source§fn clone(&self) -> OutputVarReferenceInfo
fn clone(&self) -> OutputVarReferenceInfo
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl Freeze for OutputVarReferenceInfo
impl RefUnwindSafe for OutputVarReferenceInfo
impl Send for OutputVarReferenceInfo
impl Sync for OutputVarReferenceInfo
impl Unpin for OutputVarReferenceInfo
impl UnwindSafe for OutputVarReferenceInfo
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§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>
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>
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