Enum sway_core::language::parsed::AstNodeContent
source · pub enum AstNodeContent {
UseStatement(UseStatement),
Declaration(Declaration),
Expression(Expression),
ImplicitReturnExpression(Expression),
IncludeStatement(IncludeStatement),
Error(Box<[Span]>, ErrorEmitted),
}Expand description
Represents the various structures that constitute a Sway program.
Variants§
UseStatement(UseStatement)
A statement of the form use foo::bar; or use ::foo::bar;
Declaration(Declaration)
Any type of declaration, of which there are quite a few. See Declaration for more details on the possible variants.
Expression(Expression)
Any type of expression, of which there are quite a few. See Expression for more details.
ImplicitReturnExpression(Expression)
An implicit return expression is different from a [AstNodeContent::ReturnStatement] because it is not a control flow item. Therefore it is a different variant.
An implicit return expression is an Expression at the end of a code block which has no semicolon, denoting that it is the Expression to be returned from that block.
IncludeStatement(IncludeStatement)
A statement of the form mod foo::bar; which imports/includes another source file.
Error(Box<[Span]>, ErrorEmitted)
A malformed statement.
Used for parser recovery when we cannot form a more specific node.
The list of Spans are for consumption by the LSP and are,
when joined, the same as that stored in statement.span.
Trait Implementations§
source§impl Clone for AstNodeContent
impl Clone for AstNodeContent
source§fn clone(&self) -> AstNodeContent
fn clone(&self) -> AstNodeContent
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl RefUnwindSafe for AstNodeContent
impl Send for AstNodeContent
impl Sync for AstNodeContent
impl Unpin for AstNodeContent
impl UnwindSafe for AstNodeContent
Blanket Implementations§
source§impl<T> AnyDebug for Twhere
T: Any + Debug,
impl<T> AnyDebug for Twhere T: Any + Debug,
source§fn as_any_ref(&self) -> &(dyn Any + 'static)
fn as_any_ref(&self) -> &(dyn Any + 'static)
Any.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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>
fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.