pub enum LoweredExpr {
AtVariable(VarUsage),
Tuple {
exprs: Vec<LoweredExpr>,
location: LocationId,
},
FixedSizeArray {
ty: TypeId,
exprs: Vec<LoweredExpr>,
location: LocationId,
},
ExternEnum(LoweredExprExternEnum),
Member(ExprVarMemberPath, LocationId),
Snapshot {
expr: Box<LoweredExpr>,
location: LocationId,
},
}
Expand description
Representation of the value of a computed expression.
Variants§
AtVariable(VarUsage)
The expression value lies in a variable.
Tuple
The expression value is a tuple.
FixedSizeArray
The expression value is a fixed size array.
ExternEnum(LoweredExprExternEnum)
The expression value is an enum result from an extern call.
Member(ExprVarMemberPath, LocationId)
Snapshot
Implementations§
Source§impl LoweredExpr
impl LoweredExpr
pub fn as_var_usage( self, ctx: &mut LoweringContext<'_, '_>, builder: &mut BlockBuilder, ) -> Result<VarUsage, LoweringFlowError>
pub fn ty(&self, ctx: &mut LoweringContext<'_, '_>) -> TypeId
pub fn location(&self) -> LocationId
Trait Implementations§
Source§impl Clone for LoweredExpr
impl Clone for LoweredExpr
Source§fn clone(&self) -> LoweredExpr
fn clone(&self) -> LoweredExpr
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 moreAuto Trait Implementations§
impl Freeze for LoweredExpr
impl RefUnwindSafe for LoweredExpr
impl Send for LoweredExpr
impl Sync for LoweredExpr
impl Unpin for LoweredExpr
impl UnwindSafe for LoweredExpr
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,
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>
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