swamp_script_semantic

Enum ResolvedExpression

Source
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

§optional_expr: Box<ResolvedExpression>
§

IfElseAssignExpression

Fields

§optional_expr: 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

§optional_expr: Box<ResolvedExpression>
§

IfAssignExpression

Fields

§optional_expr: Box<ResolvedExpression>
§

TupleDestructuring(Vec<ResolvedVariableRef>, ResolvedTupleTypeRef, Box<ResolvedExpression>)

Trait Implementations§

Source§

impl Debug for ResolvedExpression

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Spanned for ResolvedExpression

Source§

fn span(&self) -> Span

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.