pub enum ResolvedExpression {
Show 58 variants
VariableAccess(ResolvedVariableRef),
FieldAccess(Box<ResolvedExpression>, ResolvedStructTypeFieldRef, Vec<ResolvedAccess>),
ArrayAccess(Box<ResolvedExpression>, ResolvedArrayTypeRef, Vec<ResolvedAccess>),
MapIndexAccess(ResolvedMapIndexLookup),
InternalFunctionAccess(ResolvedInternalFunctionDefinitionRef),
ExternalFunctionAccess(ResolvedExternalFunctionDefinitionRef),
MutVariableRef(Rc<ResolvedMutVariable>),
MutStructFieldRef(Box<ResolvedExpression>, Vec<ResolvedAccess>),
MutArrayIndexRef(Box<ResolvedExpression>, Vec<ResolvedAccess>),
Option(Option<Box<ResolvedExpression>>),
InitializeVariable(ResolvedVariableAssignment),
ReassignVariable(ResolvedVariableAssignment),
VariableCompoundAssignment(ResolvedVariableCompoundAssignment),
ArrayExtend(ResolvedVariableRef, Box<ResolvedExpression>),
ArrayPush(ResolvedVariableRef, Box<ResolvedExpression>),
ArrayAssignment(ResolvedMutArray, ResolvedIndexType, Box<ResolvedExpression>),
MapAssignment(ResolvedMutMap, ResolvedIndexType, Box<ResolvedExpression>),
StructFieldAssignment(Box<ResolvedExpression>, Vec<ResolvedAccess>, Box<ResolvedExpression>),
FieldCompoundAssignment(Box<ResolvedExpression>, Vec<ResolvedAccess>, ResolvedCompoundOperator, Box<ResolvedExpression>),
BinaryOp(ResolvedBinaryOperator),
UnaryOp(ResolvedUnaryOperator),
PostfixOp(ResolvedPostfixOperator),
CoerceOptionToBool(Box<ResolvedExpression>),
FunctionInternalCall(ResolvedInternalFunctionCall),
FunctionExternalCall(ResolvedExternalFunctionCall),
StaticCall(ResolvedStaticCall),
StaticCallGeneric(ResolvedStaticCallGeneric),
MutMemberCall(MutMemberRef, Vec<ResolvedExpression>),
MemberCall(ResolvedMemberCall),
InterpolatedString(ResolvedStringTypeRef, Vec<ResolvedStringPart>),
StructInstantiation(ResolvedStructInstantiation),
Array(ResolvedArrayInstantiation),
Tuple(Vec<ResolvedExpression>),
Literal(ResolvedLiteral),
ExclusiveRange(ResolvedExclusiveRangeTypeRef, Box<ResolvedExpression>, Box<ResolvedExpression>),
IfElseOnlyVariable {
variable: ResolvedVariableRef,
optional_expr: Box<ResolvedExpression>,
true_block: Box<ResolvedExpression>,
false_block: Box<ResolvedExpression>,
},
IfElseAssignExpression {
variable: ResolvedVariableRef,
optional_expr: Box<ResolvedExpression>,
true_block: Box<ResolvedExpression>,
false_block: Box<ResolvedExpression>,
},
Match(ResolvedMatch),
LetVar(ResolvedVariableRef, Box<ResolvedExpression>),
ArrayRemoveIndex(ResolvedVariableRef, Box<ResolvedExpression>),
ArrayClear(ResolvedVariableRef),
FloatRound(Box<ResolvedExpression>),
FloatFloor(Box<ResolvedExpression>),
FloatSign(Box<ResolvedExpression>),
FloatAbs(Box<ResolvedExpression>),
SparseAdd(Box<ResolvedExpression>, Box<ResolvedExpression>),
SparseRemove(Box<ResolvedExpression>, Box<ResolvedExpression>),
SparseNew(ResolvedRustTypeRef, ResolvedType),
ForLoop(ResolvedForPattern, ResolvedIterator, Box<ResolvedExpression>),
WhileLoop(ResolvedBooleanExpression, Box<ResolvedExpression>),
Return(Option<Box<ResolvedExpression>>),
Break(ResolvedNode),
Continue(ResolvedNode),
Block(Vec<ResolvedExpression>),
If(ResolvedBooleanExpression, Box<ResolvedExpression>, Option<Box<ResolvedExpression>>),
IfOnlyVariable {
variable: ResolvedVariableRef,
optional_expr: Box<ResolvedExpression>,
true_block: Box<ResolvedExpression>,
false_block: Option<Box<ResolvedExpression>>,
},
IfAssignExpression {
variable: ResolvedVariableRef,
optional_expr: Box<ResolvedExpression>,
true_block: Box<ResolvedExpression>,
false_block: Option<Box<ResolvedExpression>>,
},
TupleDestructuring(Vec<ResolvedVariableRef>, ResolvedTupleTypeRef, Box<ResolvedExpression>),
}
Variants§
VariableAccess(ResolvedVariableRef)
FieldAccess(Box<ResolvedExpression>, ResolvedStructTypeFieldRef, Vec<ResolvedAccess>)
ArrayAccess(Box<ResolvedExpression>, ResolvedArrayTypeRef, Vec<ResolvedAccess>)
MapIndexAccess(ResolvedMapIndexLookup)
InternalFunctionAccess(ResolvedInternalFunctionDefinitionRef)
ExternalFunctionAccess(ResolvedExternalFunctionDefinitionRef)
MutVariableRef(Rc<ResolvedMutVariable>)
MutStructFieldRef(Box<ResolvedExpression>, Vec<ResolvedAccess>)
MutArrayIndexRef(Box<ResolvedExpression>, Vec<ResolvedAccess>)
Option(Option<Box<ResolvedExpression>>)
InitializeVariable(ResolvedVariableAssignment)
ReassignVariable(ResolvedVariableAssignment)
VariableCompoundAssignment(ResolvedVariableCompoundAssignment)
ArrayExtend(ResolvedVariableRef, Box<ResolvedExpression>)
ArrayPush(ResolvedVariableRef, Box<ResolvedExpression>)
ArrayAssignment(ResolvedMutArray, ResolvedIndexType, Box<ResolvedExpression>)
MapAssignment(ResolvedMutMap, ResolvedIndexType, Box<ResolvedExpression>)
StructFieldAssignment(Box<ResolvedExpression>, Vec<ResolvedAccess>, Box<ResolvedExpression>)
FieldCompoundAssignment(Box<ResolvedExpression>, Vec<ResolvedAccess>, ResolvedCompoundOperator, Box<ResolvedExpression>)
BinaryOp(ResolvedBinaryOperator)
UnaryOp(ResolvedUnaryOperator)
PostfixOp(ResolvedPostfixOperator)
CoerceOptionToBool(Box<ResolvedExpression>)
FunctionInternalCall(ResolvedInternalFunctionCall)
FunctionExternalCall(ResolvedExternalFunctionCall)
StaticCall(ResolvedStaticCall)
StaticCallGeneric(ResolvedStaticCallGeneric)
MutMemberCall(MutMemberRef, Vec<ResolvedExpression>)
MemberCall(ResolvedMemberCall)
InterpolatedString(ResolvedStringTypeRef, Vec<ResolvedStringPart>)
StructInstantiation(ResolvedStructInstantiation)
Array(ResolvedArrayInstantiation)
Tuple(Vec<ResolvedExpression>)
Literal(ResolvedLiteral)
ExclusiveRange(ResolvedExclusiveRangeTypeRef, Box<ResolvedExpression>, Box<ResolvedExpression>)
IfElseOnlyVariable
Fields
§
variable: ResolvedVariableRef
§
optional_expr: Box<ResolvedExpression>
§
true_block: Box<ResolvedExpression>
§
false_block: Box<ResolvedExpression>
IfElseAssignExpression
Fields
§
variable: ResolvedVariableRef
§
optional_expr: Box<ResolvedExpression>
§
true_block: Box<ResolvedExpression>
§
false_block: Box<ResolvedExpression>
Match(ResolvedMatch)
LetVar(ResolvedVariableRef, Box<ResolvedExpression>)
ArrayRemoveIndex(ResolvedVariableRef, Box<ResolvedExpression>)
ArrayClear(ResolvedVariableRef)
FloatRound(Box<ResolvedExpression>)
FloatFloor(Box<ResolvedExpression>)
FloatSign(Box<ResolvedExpression>)
FloatAbs(Box<ResolvedExpression>)
SparseAdd(Box<ResolvedExpression>, Box<ResolvedExpression>)
SparseRemove(Box<ResolvedExpression>, Box<ResolvedExpression>)
SparseNew(ResolvedRustTypeRef, ResolvedType)
ForLoop(ResolvedForPattern, ResolvedIterator, Box<ResolvedExpression>)
WhileLoop(ResolvedBooleanExpression, Box<ResolvedExpression>)
Return(Option<Box<ResolvedExpression>>)
Break(ResolvedNode)
Continue(ResolvedNode)
Block(Vec<ResolvedExpression>)
If(ResolvedBooleanExpression, Box<ResolvedExpression>, Option<Box<ResolvedExpression>>)
IfOnlyVariable
Fields
§
variable: ResolvedVariableRef
§
optional_expr: Box<ResolvedExpression>
§
true_block: Box<ResolvedExpression>
§
false_block: Option<Box<ResolvedExpression>>
IfAssignExpression
Fields
§
variable: ResolvedVariableRef
§
optional_expr: Box<ResolvedExpression>
§
true_block: Box<ResolvedExpression>
§
false_block: Option<Box<ResolvedExpression>>
TupleDestructuring(Vec<ResolvedVariableRef>, ResolvedTupleTypeRef, Box<ResolvedExpression>)
Trait Implementations§
Source§impl Debug for ResolvedExpression
impl Debug for ResolvedExpression
Auto Trait Implementations§
impl Freeze for ResolvedExpression
impl !RefUnwindSafe for ResolvedExpression
impl !Send for ResolvedExpression
impl !Sync for ResolvedExpression
impl Unpin for ResolvedExpression
impl !UnwindSafe for ResolvedExpression
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