Enum sway_core::parse_tree::ExpressionKind
source · [−]pub enum ExpressionKind {
Show 25 variants
Error(Box<[Span]>),
Literal(Literal),
FunctionApplication(Box<FunctionApplicationExpression>),
LazyOperator(LazyOperatorExpression),
Variable(Ident),
Tuple(Vec<Expression>),
TupleIndex(TupleIndexExpression),
Array(Vec<Expression>),
Struct(Box<StructExpression>),
CodeBlock(CodeBlock),
If(IfExpression),
Match(MatchExpression),
Asm(Box<AsmExpression>),
MethodApplication(Box<MethodApplicationExpression>),
Subfield(SubfieldExpression),
DelineatedPath(Box<DelineatedPathExpression>),
AbiCast(Box<AbiCastExpression>),
ArrayIndex(ArrayIndexExpression),
StorageAccess(StorageAccessExpression),
IntrinsicFunction(IntrinsicFunctionExpression),
WhileLoop(WhileLoopExpression),
Break,
Continue,
Reassignment(ReassignmentExpression),
Return(Box<Expression>),
}
Variants
Error(Box<[Span]>)
A malformed expression.
Used for parser recovery when we cannot form a more specific node.
The list of Span
s are for consumption by the LSP and are,
when joined, the same as that stored in expr.span
.
Literal(Literal)
FunctionApplication(Box<FunctionApplicationExpression>)
LazyOperator(LazyOperatorExpression)
Variable(Ident)
Tuple(Vec<Expression>)
TupleIndex(TupleIndexExpression)
Array(Vec<Expression>)
Struct(Box<StructExpression>)
CodeBlock(CodeBlock)
If(IfExpression)
Match(MatchExpression)
Asm(Box<AsmExpression>)
MethodApplication(Box<MethodApplicationExpression>)
Subfield(SubfieldExpression)
A subfield expression is anything of the form:
ⓘ
<ident>.<ident>
DelineatedPath(Box<DelineatedPathExpression>)
A delineated path is anything of the form:
ⓘ
<ident>::<ident>
Where there are n >= 2
idents.
These could be either enum variant constructions, or they could be
references to some sort of module in the module tree.
For example, a reference to a module:
ⓘ
std::ops::add
And, an enum declaration:
ⓘ
enum MyEnum {
Variant1,
Variant2
}
MyEnum::Variant1
AbiCast(Box<AbiCastExpression>)
A cast of a hash to an ABI for calling a contract.
ArrayIndex(ArrayIndexExpression)
StorageAccess(StorageAccessExpression)
IntrinsicFunction(IntrinsicFunctionExpression)
WhileLoop(WhileLoopExpression)
A control flow element which loops continually until some boolean expression evaluates as
false
.
Break
Continue
Reassignment(ReassignmentExpression)
Return(Box<Expression>)
Trait Implementations
sourceimpl Clone for ExpressionKind
impl Clone for ExpressionKind
sourcefn clone(&self) -> ExpressionKind
fn clone(&self) -> ExpressionKind
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations
impl RefUnwindSafe for ExpressionKind
impl Send for ExpressionKind
impl Sync for ExpressionKind
impl Unpin for ExpressionKind
impl UnwindSafe for ExpressionKind
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more