pub enum ResolvedExpression {
Show 82 variants
VariableAccess(ResolvedVariableRef),
ConstantAccess(ResolvedConstantRef),
FieldAccess(Box<ResolvedExpression>, ResolvedStructTypeFieldRef, Vec<ResolvedAccess>),
ArrayAccess(Box<ResolvedExpression>, ResolvedArrayTypeRef, Vec<ResolvedAccess>),
MapIndexAccess(ResolvedMapIndexLookup),
MapRemove(Box<ResolvedExpression>, Box<ResolvedExpression>, ResolvedMapTypeRef),
MapHas(Box<ResolvedExpression>, Box<ResolvedExpression>),
InternalFunctionAccess(ResolvedInternalFunctionDefinitionRef),
ExternalFunctionAccess(ResolvedExternalFunctionDefinitionRef),
MutVariableRef(Rc<ResolvedMutVariable>),
MutStructFieldRef(Box<ResolvedExpression>, ResolvedType, Vec<ResolvedAccess>),
MutArrayIndexRef(Box<ResolvedExpression>, ResolvedArrayTypeRef, Vec<ResolvedAccess>),
Option(Option<Box<ResolvedExpression>>),
NoneCoalesceOperator(Box<ResolvedExpression>, 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>),
FunctionCall(FunctionTypeSignature, Box<ResolvedExpression>, Vec<ResolvedExpression>),
StaticCall(ResolvedStaticCall),
StaticCallGeneric(ResolvedStaticCallGeneric),
FunctionInternalCall(ResolvedInternalFunctionCall),
FunctionExternalCall(ResolvedExternalFunctionCall),
MemberCall(ResolvedMemberCall),
InterpolatedString(Vec<ResolvedStringPart>),
StructInstantiation(ResolvedStructInstantiation),
Array(ResolvedArrayInstantiation),
Tuple(Vec<ResolvedExpression>),
Literal(ResolvedLiteral),
ExclusiveRange(Box<ResolvedExpression>, Box<ResolvedExpression>),
InclusiveRange(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),
Guard(Vec<ResolvedGuard>, Option<Box<ResolvedExpression>>),
LetVar(ResolvedVariableRef, Box<ResolvedExpression>),
ArrayRemoveIndex(ResolvedVariableRef, Box<ResolvedExpression>),
ArrayClear(ResolvedVariableRef),
IntAbs(Box<ResolvedExpression>),
IntRnd(Box<ResolvedExpression>),
IntToFloat(Box<ResolvedExpression>),
IntClamp(Box<ResolvedExpression>, Box<ResolvedExpression>, Box<ResolvedExpression>),
IntMin(Box<ResolvedExpression>, Box<ResolvedExpression>),
IntMax(Box<ResolvedExpression>, Box<ResolvedExpression>),
FloatRound(Box<ResolvedExpression>),
FloatFloor(Box<ResolvedExpression>),
FloatSign(Box<ResolvedExpression>),
FloatAbs(Box<ResolvedExpression>),
FloatRnd(Box<ResolvedExpression>),
FloatCos(Box<ResolvedExpression>),
FloatSin(Box<ResolvedExpression>),
FloatAcos(Box<ResolvedExpression>),
FloatAsin(Box<ResolvedExpression>),
FloatAtan2(Box<ResolvedExpression>, Box<ResolvedExpression>),
FloatSqrt(Box<ResolvedExpression>),
FloatClamp(Box<ResolvedExpression>, Box<ResolvedExpression>, Box<ResolvedExpression>),
FloatMin(Box<ResolvedExpression>, Box<ResolvedExpression>),
FloatMax(Box<ResolvedExpression>, Box<ResolvedExpression>),
StringLen(Box<ResolvedExpression>),
SparseAdd(Box<ResolvedExpression>, Box<ResolvedExpression>),
SparseRemove(Box<ResolvedExpression>, Box<ResolvedExpression>),
SparseNew(ResolvedRustTypeRef, ResolvedType),
SparseAccess(Box<ResolvedExpression>, Box<ResolvedExpression>, 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)
ConstantAccess(ResolvedConstantRef)
FieldAccess(Box<ResolvedExpression>, ResolvedStructTypeFieldRef, Vec<ResolvedAccess>)
ArrayAccess(Box<ResolvedExpression>, ResolvedArrayTypeRef, Vec<ResolvedAccess>)
MapIndexAccess(ResolvedMapIndexLookup)
MapRemove(Box<ResolvedExpression>, Box<ResolvedExpression>, ResolvedMapTypeRef)
MapHas(Box<ResolvedExpression>, Box<ResolvedExpression>)
InternalFunctionAccess(ResolvedInternalFunctionDefinitionRef)
ExternalFunctionAccess(ResolvedExternalFunctionDefinitionRef)
MutVariableRef(Rc<ResolvedMutVariable>)
MutStructFieldRef(Box<ResolvedExpression>, ResolvedType, Vec<ResolvedAccess>)
MutArrayIndexRef(Box<ResolvedExpression>, ResolvedArrayTypeRef, Vec<ResolvedAccess>)
Option(Option<Box<ResolvedExpression>>)
NoneCoalesceOperator(Box<ResolvedExpression>, 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>)
FunctionCall(FunctionTypeSignature, Box<ResolvedExpression>, Vec<ResolvedExpression>)
StaticCall(ResolvedStaticCall)
StaticCallGeneric(ResolvedStaticCallGeneric)
FunctionInternalCall(ResolvedInternalFunctionCall)
FunctionExternalCall(ResolvedExternalFunctionCall)
MemberCall(ResolvedMemberCall)
InterpolatedString(Vec<ResolvedStringPart>)
StructInstantiation(ResolvedStructInstantiation)
Array(ResolvedArrayInstantiation)
Tuple(Vec<ResolvedExpression>)
Literal(ResolvedLiteral)
ExclusiveRange(Box<ResolvedExpression>, Box<ResolvedExpression>)
InclusiveRange(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)
Guard(Vec<ResolvedGuard>, Option<Box<ResolvedExpression>>)
LetVar(ResolvedVariableRef, Box<ResolvedExpression>)
ArrayRemoveIndex(ResolvedVariableRef, Box<ResolvedExpression>)
ArrayClear(ResolvedVariableRef)
IntAbs(Box<ResolvedExpression>)
IntRnd(Box<ResolvedExpression>)
IntToFloat(Box<ResolvedExpression>)
IntClamp(Box<ResolvedExpression>, Box<ResolvedExpression>, Box<ResolvedExpression>)
IntMin(Box<ResolvedExpression>, Box<ResolvedExpression>)
IntMax(Box<ResolvedExpression>, Box<ResolvedExpression>)
FloatRound(Box<ResolvedExpression>)
FloatFloor(Box<ResolvedExpression>)
FloatSign(Box<ResolvedExpression>)
FloatAbs(Box<ResolvedExpression>)
FloatRnd(Box<ResolvedExpression>)
FloatCos(Box<ResolvedExpression>)
FloatSin(Box<ResolvedExpression>)
FloatAcos(Box<ResolvedExpression>)
FloatAsin(Box<ResolvedExpression>)
FloatAtan2(Box<ResolvedExpression>, Box<ResolvedExpression>)
FloatSqrt(Box<ResolvedExpression>)
FloatClamp(Box<ResolvedExpression>, Box<ResolvedExpression>, Box<ResolvedExpression>)
FloatMin(Box<ResolvedExpression>, Box<ResolvedExpression>)
FloatMax(Box<ResolvedExpression>, Box<ResolvedExpression>)
StringLen(Box<ResolvedExpression>)
SparseAdd(Box<ResolvedExpression>, Box<ResolvedExpression>)
SparseRemove(Box<ResolvedExpression>, Box<ResolvedExpression>)
SparseNew(ResolvedRustTypeRef, ResolvedType)
SparseAccess(Box<ResolvedExpression>, Box<ResolvedExpression>, 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>)
Implementations§
Source§impl ResolvedExpression
impl ResolvedExpression
pub fn is_coerce_to_mutable(&self) -> bool
pub fn collect_constant_dependencies(&self, deps: &mut SeqSet<ConstantId>)
pub fn resolution(&self) -> ResolvedType
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