pub enum ExpressionKind {
Show 42 variants
ConstantAccess(ConstantRef),
VariableAccess(VariableRef),
FieldAccess(Box<Expression>, usize),
ArrayAccess(Box<Expression>, Type, Box<Expression>),
MapIndexAccess(Box<Expression>, Type, Type, Box<Expression>),
StringRangeAccess(Box<Expression>, Box<Range>),
ArrayRangeAccess(Box<Expression>, Box<Range>),
InternalFunctionAccess(InternalFunctionDefinitionRef),
ExternalFunctionAccess(ExternalFunctionDefinitionRef),
MapAssignment(Box<SingleMutLocationExpression>, Box<Expression>, Box<Expression>),
BinaryOp(BinaryOperator),
UnaryOp(UnaryOperator),
PostfixChain(Box<Expression>, Vec<Postfix>),
CoerceOptionToBool(Box<Expression>),
FunctionCall(Signature, Box<Expression>, Vec<ArgumentExpressionOrLocation>),
MemberCall(MemberCall),
InterpolatedString(Vec<StringPart>),
VariableDefinition(VariableRef, Box<MutOrImmutableExpression>),
VariableReassignment(VariableRef, Box<MutOrImmutableExpression>),
StructInstantiation(StructInstantiation),
AnonymousStructLiteral(AnonymousStructLiteral),
Array(ArrayInstantiation),
Tuple(Vec<Expression>),
Literal(Literal),
Option(Option<Box<Expression>>),
Range(Box<Expression>, Box<Expression>, RangeMode),
ForLoop(ForPattern, Iterable, Box<Expression>),
WhileLoop(BooleanExpression, Box<Expression>),
Return(Option<Box<Expression>>),
Break,
Continue,
Block(Vec<Expression>),
Match(Match),
Guard(Vec<Guard>),
If(BooleanExpression, Box<Expression>, Option<Box<Expression>>),
When(Vec<WhenBinding>, Box<Expression>, Option<Box<Expression>>),
TupleDestructuring(Vec<VariableRef>, Vec<Type>, Box<Expression>),
Assignment(Box<SingleMutLocationExpression>, Box<Expression>),
AssignmentSlice(Box<SliceLocationExpression>, Box<Expression>),
CompoundAssignment(SingleMutLocationExpression, CompoundOperatorKind, Box<Expression>),
IntrinsicCallMut(IntrinsicFunction, SingleMutLocationExpression, Vec<Expression>),
IntrinsicCallGeneric(IntrinsicFunction, Vec<Type>, Vec<Expression>),
}
Variants§
ConstantAccess(ConstantRef)
VariableAccess(VariableRef)
FieldAccess(Box<Expression>, usize)
ArrayAccess(Box<Expression>, Type, Box<Expression>)
MapIndexAccess(Box<Expression>, Type, Type, Box<Expression>)
StringRangeAccess(Box<Expression>, Box<Range>)
ArrayRangeAccess(Box<Expression>, Box<Range>)
InternalFunctionAccess(InternalFunctionDefinitionRef)
ExternalFunctionAccess(ExternalFunctionDefinitionRef)
MapAssignment(Box<SingleMutLocationExpression>, Box<Expression>, Box<Expression>)
BinaryOp(BinaryOperator)
UnaryOp(UnaryOperator)
PostfixChain(Box<Expression>, Vec<Postfix>)
CoerceOptionToBool(Box<Expression>)
FunctionCall(Signature, Box<Expression>, Vec<ArgumentExpressionOrLocation>)
MemberCall(MemberCall)
InterpolatedString(Vec<StringPart>)
VariableDefinition(VariableRef, Box<MutOrImmutableExpression>)
VariableReassignment(VariableRef, Box<MutOrImmutableExpression>)
StructInstantiation(StructInstantiation)
AnonymousStructLiteral(AnonymousStructLiteral)
Array(ArrayInstantiation)
Tuple(Vec<Expression>)
Literal(Literal)
Option(Option<Box<Expression>>)
Range(Box<Expression>, Box<Expression>, RangeMode)
ForLoop(ForPattern, Iterable, Box<Expression>)
WhileLoop(BooleanExpression, Box<Expression>)
Return(Option<Box<Expression>>)
Break
Continue
Block(Vec<Expression>)
Match(Match)
Guard(Vec<Guard>)
If(BooleanExpression, Box<Expression>, Option<Box<Expression>>)
When(Vec<WhenBinding>, Box<Expression>, Option<Box<Expression>>)
TupleDestructuring(Vec<VariableRef>, Vec<Type>, Box<Expression>)
Assignment(Box<SingleMutLocationExpression>, Box<Expression>)
AssignmentSlice(Box<SliceLocationExpression>, Box<Expression>)
CompoundAssignment(SingleMutLocationExpression, CompoundOperatorKind, Box<Expression>)
IntrinsicCallMut(IntrinsicFunction, SingleMutLocationExpression, Vec<Expression>)
IntrinsicCallGeneric(IntrinsicFunction, Vec<Type>, Vec<Expression>)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ExpressionKind
impl !RefUnwindSafe for ExpressionKind
impl !Send for ExpressionKind
impl !Sync for ExpressionKind
impl Unpin for ExpressionKind
impl !UnwindSafe for ExpressionKind
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