//! > Test parsing code, without trivia.
//! > test_runner_name
test_full_parser_tree(expect_diagnostics: true)
//! > cairo_code
>>> file: src/parser_test_data/cairo_test_files/test1.cairo
//! > print_trivia
false
//! > print_colors
false
//! > expected_diagnostics
error[E1000]: Skipped tokens. Expected: Const/Enum/ExternFunction/ExternType/Function/Impl/InlineMacro/Module/Struct/Trait/TypeAlias/Use or an attribute.
--> src/parser_test_data/cairo_test_files/test1.cairo:6:1
;
^
error[E1000]: Skipped tokens. Expected: parameter.
--> src/parser_test_data/cairo_test_files/test1.cairo:7:8
fn foo(,var1: int,, mut ref var2: felt252,) -> int {
^
error[E1000]: Skipped tokens. Expected: parameter.
--> src/parser_test_data/cairo_test_files/test1.cairo:7:19
fn foo(,var1: int,, mut ref var2: felt252,) -> int {
^
error[E1001]: Missing token '}'.
--> src/parser_test_data/cairo_test_files/test1.cairo:32:14
return x;
^
error[E1023]: Missing tokens. Expected an item after attributes.
--> src/parser_test_data/cairo_test_files/test1.cairo:64:26
#[attribute_without_item]
^
//! > expected_tree
└── root (kind: SyntaxFile)
├── items (kind: ModuleItemList)
│ ├── child #0 (kind: ItemModule)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── module_kw (kind: TokenModule): 'mod'
│ │ ├── name (kind: TokenIdentifier): 'submod'
│ │ └── body (kind: TokenSemicolon): ';'
│ ├── child #1 (kind: ItemUse)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── use_kw (kind: TokenUse): 'use'
│ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ ├── use_path (kind: UsePathSingle)
│ │ │ ├── ident (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'submod'
│ │ │ ├── colon_colon (kind: TokenColonColon): '::'
│ │ │ └── use_path (kind: UsePathLeaf)
│ │ │ ├── ident (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'something'
│ │ │ └── alias_clause (kind: OptionAliasClauseEmpty) []
│ │ └── semicolon (kind: TokenSemicolon): ';'
│ ├── child #2 (kind: FunctionWithBody)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── declaration (kind: FunctionDeclaration)
│ │ │ ├── optional_const (kind: OptionTerminalConstEmpty) []
│ │ │ ├── function_kw (kind: TokenFunction): 'fn'
│ │ │ ├── name (kind: TokenIdentifier): 'foo'
│ │ │ ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
│ │ │ └── signature (kind: FunctionSignature)
│ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ ├── parameters (kind: ParamList)
│ │ │ │ ├── item #0 (kind: Param)
│ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ ├── name (kind: TokenIdentifier): 'var1'
│ │ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ │ ├── colon (kind: TokenColon): ':'
│ │ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'int'
│ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ ├── item #1 (kind: Param)
│ │ │ │ │ ├── modifiers (kind: ModifierList)
│ │ │ │ │ │ ├── child #0 (kind: TokenMut): 'mut'
│ │ │ │ │ │ └── child #1 (kind: TokenRef): 'ref'
│ │ │ │ │ ├── name (kind: TokenIdentifier): 'var2'
│ │ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ │ ├── colon (kind: TokenColon): ':'
│ │ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'felt252'
│ │ │ │ └── separator #1 (kind: TokenComma): ','
│ │ │ ├── rparen (kind: TokenRParen): ')'
│ │ │ ├── ret_ty (kind: ReturnTypeClause)
│ │ │ │ ├── arrow (kind: TokenArrow): '->'
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'int'
│ │ │ ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
│ │ │ └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
│ │ └── body (kind: ExprBlock)
│ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ ├── statements (kind: StatementList)
│ │ │ ├── child #0 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TokenLet): 'let'
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'bla3'
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TokenEq): '='
│ │ │ │ ├── rhs (kind: ExprUnary)
│ │ │ │ │ ├── op (kind: TokenMinus): '-'
│ │ │ │ │ └── expr (kind: ExprUnary)
│ │ │ │ │ ├── op (kind: TokenMinus): '-'
│ │ │ │ │ └── expr (kind: TokenLiteralNumber): '7'
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ │ ├── child #1 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TokenLet): 'let'
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'bla4'
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TokenEq): '='
│ │ │ │ ├── rhs (kind: ExprUnary)
│ │ │ │ │ ├── op (kind: TokenMinus): '-'
│ │ │ │ │ └── expr (kind: ExprUnary)
│ │ │ │ │ ├── op (kind: TokenNot): '!'
│ │ │ │ │ └── expr (kind: ExprUnary)
│ │ │ │ │ ├── op (kind: TokenMinus): '-'
│ │ │ │ │ └── expr (kind: ExprUnary)
│ │ │ │ │ ├── op (kind: TokenNot): '!'
│ │ │ │ │ └── expr (kind: TokenLiteralNumber): '8'
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ │ ├── child #2 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TokenLet): 'let'
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'x'
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TokenEq): '='
│ │ │ │ ├── rhs (kind: TokenLiteralNumber): '1'
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ │ ├── child #3 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TokenLet): 'let'
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'y'
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TokenEq): '='
│ │ │ │ ├── rhs (kind: ExprMatch)
│ │ │ │ │ ├── match_kw (kind: TokenMatch): 'match'
│ │ │ │ │ ├── expr (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'x'
│ │ │ │ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ │ │ │ ├── arms (kind: MatchArms)
│ │ │ │ │ │ ├── item #0 (kind: MatchArm)
│ │ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ │ └── item #0 (kind: TokenLiteralNumber): '0'
│ │ │ │ │ │ │ ├── arrow (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ │ └── expression (kind: ExprBlock)
│ │ │ │ │ │ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ │ │ │ │ │ ├── statements (kind: StatementList)
│ │ │ │ │ │ │ │ └── child #0 (kind: StatementExpr)
│ │ │ │ │ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ │ │ │ │ ├── expr (kind: TokenLiteralNumber): '1'
│ │ │ │ │ │ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ │ │ │ │ │ └── rbrace (kind: TokenRBrace): '}'
│ │ │ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ │ │ ├── item #1 (kind: MatchArm)
│ │ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ │ └── item #0 (kind: TokenUnderscore): '_'
│ │ │ │ │ │ │ ├── arrow (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ │ └── expression (kind: TokenLiteralNumber): '0'
│ │ │ │ │ │ └── separator #1 (kind: TokenComma): ','
│ │ │ │ │ └── rbrace (kind: TokenRBrace): '}'
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ │ ├── child #4 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TokenLet): 'let'
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'z'
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TokenEq): '='
│ │ │ │ ├── rhs (kind: ExprIf)
│ │ │ │ │ ├── if_kw (kind: TokenIf): 'if'
│ │ │ │ │ ├── conditions (kind: ConditionListAnd)
│ │ │ │ │ │ └── item #0 (kind: ConditionExpr)
│ │ │ │ │ │ └── expr (kind: ExprBinary)
│ │ │ │ │ │ ├── lhs (kind: ExprBinary)
│ │ │ │ │ │ │ ├── lhs (kind: TokenLiteralNumber): '0'
│ │ │ │ │ │ │ ├── op (kind: TokenPlus): '+'
│ │ │ │ │ │ │ └── rhs (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'x'
│ │ │ │ │ │ ├── op (kind: TokenEqEq): '=='
│ │ │ │ │ │ └── rhs (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'y'
│ │ │ │ │ ├── if_block (kind: ExprBlock)
│ │ │ │ │ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ │ │ │ │ ├── statements (kind: StatementList)
│ │ │ │ │ │ │ └── child #0 (kind: StatementExpr)
│ │ │ │ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ │ │ │ ├── expr (kind: TokenLiteralNumber): '1'
│ │ │ │ │ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ │ │ │ │ └── rbrace (kind: TokenRBrace): '}'
│ │ │ │ │ └── else_clause (kind: ElseClause)
│ │ │ │ │ ├── else_kw (kind: TokenElse): 'else'
│ │ │ │ │ └── else_block_or_if (kind: ExprBlock)
│ │ │ │ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ │ │ │ ├── statements (kind: StatementList)
│ │ │ │ │ │ └── child #0 (kind: StatementExpr)
│ │ │ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ │ │ ├── expr (kind: TokenLiteralNumber): '2'
│ │ │ │ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ │ │ │ └── rbrace (kind: TokenRBrace): '}'
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ │ ├── child #5 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TokenLet): 'let'
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'block_combination'
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TokenEq): '='
│ │ │ │ ├── rhs (kind: ExprBinary)
│ │ │ │ │ ├── lhs (kind: ExprBinary)
│ │ │ │ │ │ ├── lhs (kind: ExprBlock)
│ │ │ │ │ │ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ │ │ │ │ │ ├── statements (kind: StatementList)
│ │ │ │ │ │ │ │ └── child #0 (kind: StatementExpr)
│ │ │ │ │ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ │ │ │ │ ├── expr (kind: TokenLiteralNumber): '5'
│ │ │ │ │ │ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ │ │ │ │ │ └── rbrace (kind: TokenRBrace): '}'
│ │ │ │ │ │ ├── op (kind: TokenPlus): '+'
│ │ │ │ │ │ └── rhs (kind: ExprMatch)
│ │ │ │ │ │ ├── match_kw (kind: TokenMatch): 'match'
│ │ │ │ │ │ ├── expr (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'x'
│ │ │ │ │ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ │ │ │ │ ├── arms (kind: MatchArms)
│ │ │ │ │ │ │ ├── item #0 (kind: MatchArm)
│ │ │ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ │ │ └── item #0 (kind: PatternEnum)
│ │ │ │ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'E'
│ │ │ │ │ │ │ │ │ │ ├── separator #0 (kind: TokenColonColon): '::'
│ │ │ │ │ │ │ │ │ │ └── item #1 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'V1'
│ │ │ │ │ │ │ │ │ └── pattern (kind: PatternEnumInnerPattern)
│ │ │ │ │ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ │ │ │ │ ├── pattern (kind: TokenUnderscore): '_'
│ │ │ │ │ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ │ │ │ │ ├── arrow (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ │ │ └── expression (kind: TokenLiteralNumber): '4'
│ │ │ │ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ │ │ │ └── item #1 (kind: MatchArm)
│ │ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ │ └── item #0 (kind: PatternEnum)
│ │ │ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'E'
│ │ │ │ │ │ │ │ │ ├── separator #0 (kind: TokenColonColon): '::'
│ │ │ │ │ │ │ │ │ └── item #1 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'V2'
│ │ │ │ │ │ │ │ └── pattern (kind: PatternEnumInnerPattern)
│ │ │ │ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ │ │ │ ├── pattern (kind: TokenUnderscore): '_'
│ │ │ │ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ │ │ │ ├── arrow (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ │ └── expression (kind: TokenLiteralNumber): '2'
│ │ │ │ │ │ └── rbrace (kind: TokenRBrace): '}'
│ │ │ │ │ ├── op (kind: TokenMinus): '-'
│ │ │ │ │ └── rhs (kind: ExprIf)
│ │ │ │ │ ├── if_kw (kind: TokenIf): 'if'
│ │ │ │ │ ├── conditions (kind: ConditionListAnd)
│ │ │ │ │ │ └── item #0 (kind: ConditionExpr)
│ │ │ │ │ │ └── expr (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'cond'
│ │ │ │ │ ├── if_block (kind: ExprBlock)
│ │ │ │ │ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ │ │ │ │ ├── statements (kind: StatementList)
│ │ │ │ │ │ │ └── child #0 (kind: StatementExpr)
│ │ │ │ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ │ │ │ ├── expr (kind: TokenLiteralNumber): '32'
│ │ │ │ │ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ │ │ │ │ └── rbrace (kind: TokenRBrace): '}'
│ │ │ │ │ └── else_clause (kind: ElseClause)
│ │ │ │ │ ├── else_kw (kind: TokenElse): 'else'
│ │ │ │ │ └── else_block_or_if (kind: ExprBlock)
│ │ │ │ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ │ │ │ ├── statements (kind: StatementList)
│ │ │ │ │ │ └── child #0 (kind: StatementExpr)
│ │ │ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ │ │ ├── expr (kind: TokenLiteralNumber): '1'
│ │ │ │ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ │ │ │ └── rbrace (kind: TokenRBrace): '}'
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ │ ├── child #6 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TokenLet): 'let'
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'w'
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TokenEq): '='
│ │ │ │ ├── rhs (kind: ExprErrorPropagate)
│ │ │ │ │ ├── expr (kind: ExprFunctionCall)
│ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'calc_with_error'
│ │ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ │ ├── item #0 (kind: Arg)
│ │ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'x'
│ │ │ │ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ │ │ │ ├── item #1 (kind: Arg)
│ │ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ │ └── value (kind: ExprErrorPropagate)
│ │ │ │ │ │ │ │ ├── expr (kind: ExprPath)
│ │ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'y'
│ │ │ │ │ │ │ │ └── op (kind: TokenQuestionMark): '?'
│ │ │ │ │ │ │ ├── separator #1 (kind: TokenComma): ','
│ │ │ │ │ │ │ └── item #2 (kind: Arg)
│ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'z'
│ │ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ │ └── op (kind: TokenQuestionMark): '?'
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ │ ├── child #7 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TokenLet): 'let'
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'member_value'
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TokenEq): '='
│ │ │ │ ├── rhs (kind: ExprErrorPropagate)
│ │ │ │ │ ├── expr (kind: ExprBinary)
│ │ │ │ │ │ ├── lhs (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'value'
│ │ │ │ │ │ ├── op (kind: TokenDot): '.'
│ │ │ │ │ │ └── rhs (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'member'
│ │ │ │ │ └── op (kind: TokenQuestionMark): '?'
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ │ ├── child #8 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TokenLet): 'let'
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'method_return'
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TokenEq): '='
│ │ │ │ ├── rhs (kind: ExprErrorPropagate)
│ │ │ │ │ ├── expr (kind: ExprBinary)
│ │ │ │ │ │ ├── lhs (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'value'
│ │ │ │ │ │ ├── op (kind: TokenDot): '.'
│ │ │ │ │ │ └── rhs (kind: ExprFunctionCall)
│ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'method'
│ │ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ │ ├── arguments (kind: ArgList) []
│ │ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ │ └── op (kind: TokenQuestionMark): '?'
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ │ ├── child #9 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TokenLet): 'let'
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'x'
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TokenEq): '='
│ │ │ │ ├── rhs (kind: TokenTrue): 'true'
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ │ ├── child #10 (kind: StatementExpr)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── expr (kind: ExprBinary)
│ │ │ │ │ ├── lhs (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'z'
│ │ │ │ │ ├── op (kind: TokenEq): '='
│ │ │ │ │ └── rhs (kind: TokenLiteralNumber): '5'
│ │ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ │ ├── child #11 (kind: StatementExpr)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── expr (kind: ExprFunctionCall)
│ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'func1'
│ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ └── item #0 (kind: Arg)
│ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'x'
│ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ │ ├── child #12 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TokenLet): 'let'
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'x'
│ │ │ │ ├── type_clause (kind: TypeClause)
│ │ │ │ │ ├── colon (kind: TokenColon): ':'
│ │ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentWithGenericArgs)
│ │ │ │ │ ├── ident (kind: TokenIdentifier): 'Option'
│ │ │ │ │ ├── separator (kind: OptionTerminalColonColonEmpty) []
│ │ │ │ │ └── generic_args (kind: GenericArgs)
│ │ │ │ │ ├── langle (kind: TokenLT): '<'
│ │ │ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'felt252'
│ │ │ │ │ └── rangle (kind: TokenGT): '>'
│ │ │ │ ├── eq (kind: TokenEq): '='
│ │ │ │ ├── rhs (kind: ExprFunctionCall)
│ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'Some'
│ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ └── item #0 (kind: Arg)
│ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ └── value (kind: TokenLiteralNumber): '5'
│ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ │ ├── child #13 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TokenLet): 'let'
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'x'
│ │ │ │ ├── type_clause (kind: TypeClause)
│ │ │ │ │ ├── colon (kind: TokenColon): ':'
│ │ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentWithGenericArgs)
│ │ │ │ │ ├── ident (kind: TokenIdentifier): 'Option'
│ │ │ │ │ ├── separator (kind: OptionTerminalColonColonEmpty) []
│ │ │ │ │ └── generic_args (kind: GenericArgs)
│ │ │ │ │ ├── langle (kind: TokenLT): '<'
│ │ │ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'felt252'
│ │ │ │ │ └── rangle (kind: TokenGT): '>'
│ │ │ │ ├── eq (kind: TokenEq): '='
│ │ │ │ ├── rhs (kind: ExprFunctionCall)
│ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'Some'
│ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ └── item #0 (kind: Arg)
│ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ └── value (kind: TokenLiteralNumber): '5'
│ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ │ ├── child #14 (kind: StatementExpr)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── expr (kind: ExprFunctionCall)
│ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentWithGenericArgs)
│ │ │ │ │ │ ├── ident (kind: TokenIdentifier): 'func2'
│ │ │ │ │ │ ├── separator (kind: TokenColonColon): '::'
│ │ │ │ │ │ └── generic_args (kind: GenericArgs)
│ │ │ │ │ │ ├── langle (kind: TokenLT): '<'
│ │ │ │ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'int'
│ │ │ │ │ │ └── rangle (kind: TokenGT): '>'
│ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ └── item #0 (kind: Arg)
│ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'x'
│ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ │ └── child #15 (kind: StatementReturn)
│ │ │ ├── attributes (kind: AttributeList) []
│ │ │ ├── return_kw (kind: TokenReturn): 'return'
│ │ │ ├── expr_clause (kind: ExprClause)
│ │ │ │ └── expr (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'x'
│ │ │ └── semicolon (kind: TokenSemicolon): ';'
│ │ └── rbrace: Missing
│ ├── child #3 (kind: FunctionWithBody)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── declaration (kind: FunctionDeclaration)
│ │ │ ├── optional_const (kind: OptionTerminalConstEmpty) []
│ │ │ ├── function_kw (kind: TokenFunction): 'fn'
│ │ │ ├── name (kind: TokenIdentifier): 'bar'
│ │ │ ├── generic_params (kind: WrappedGenericParamList)
│ │ │ │ ├── langle (kind: TokenLT): '<'
│ │ │ │ ├── generic_params (kind: GenericParamList)
│ │ │ │ │ ├── item #0 (kind: GenericParamType)
│ │ │ │ │ │ └── name (kind: TokenIdentifier): 'A'
│ │ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ │ └── item #1 (kind: GenericParamType)
│ │ │ │ │ └── name (kind: TokenIdentifier): 'B'
│ │ │ │ └── rangle (kind: TokenGT): '>'
│ │ │ └── signature (kind: FunctionSignature)
│ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ ├── parameters (kind: ParamList) []
│ │ │ ├── rparen (kind: TokenRParen): ')'
│ │ │ ├── ret_ty (kind: ReturnTypeClause)
│ │ │ │ ├── arrow (kind: TokenArrow): '->'
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'felt252'
│ │ │ ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
│ │ │ └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
│ │ └── body (kind: ExprBlock)
│ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ ├── statements (kind: StatementList) []
│ │ └── rbrace (kind: TokenRBrace): '}'
│ ├── child #4 (kind: ItemExternType)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── extern_kw (kind: TokenExtern): 'extern'
│ │ ├── type_kw (kind: TokenType): 'type'
│ │ ├── name (kind: TokenIdentifier): 'S'
│ │ ├── generic_params (kind: WrappedGenericParamList)
│ │ │ ├── langle (kind: TokenLT): '<'
│ │ │ ├── generic_params (kind: GenericParamList) []
│ │ │ └── rangle (kind: TokenGT): '>'
│ │ └── semicolon (kind: TokenSemicolon): ';'
│ ├── child #5 (kind: ItemExternFunction)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── extern_kw (kind: TokenExtern): 'extern'
│ │ ├── declaration (kind: FunctionDeclaration)
│ │ │ ├── optional_const (kind: OptionTerminalConstEmpty) []
│ │ │ ├── function_kw (kind: TokenFunction): 'fn'
│ │ │ ├── name (kind: TokenIdentifier): 'glee'
│ │ │ ├── generic_params (kind: WrappedGenericParamList)
│ │ │ │ ├── langle (kind: TokenLT): '<'
│ │ │ │ ├── generic_params (kind: GenericParamList)
│ │ │ │ │ ├── item #0 (kind: GenericParamType)
│ │ │ │ │ │ └── name (kind: TokenIdentifier): 'A'
│ │ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ │ └── item #1 (kind: GenericParamType)
│ │ │ │ │ └── name (kind: TokenIdentifier): 'b'
│ │ │ │ └── rangle (kind: TokenGT): '>'
│ │ │ └── signature (kind: FunctionSignature)
│ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ ├── parameters (kind: ParamList)
│ │ │ │ ├── item #0 (kind: Param)
│ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ ├── name (kind: TokenIdentifier): 'var1'
│ │ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ │ ├── colon (kind: TokenColon): ':'
│ │ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'int'
│ │ │ │ └── separator #0 (kind: TokenComma): ','
│ │ │ ├── rparen (kind: TokenRParen): ')'
│ │ │ ├── ret_ty (kind: ReturnTypeClause)
│ │ │ │ ├── arrow (kind: TokenArrow): '->'
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'crate'
│ │ │ │ ├── separator #0 (kind: TokenColonColon): '::'
│ │ │ │ └── item #1 (kind: PathSegmentWithGenericArgs)
│ │ │ │ ├── ident (kind: TokenIdentifier): 'S'
│ │ │ │ ├── separator (kind: OptionTerminalColonColonEmpty) []
│ │ │ │ └── generic_args (kind: GenericArgs)
│ │ │ │ ├── langle (kind: TokenLT): '<'
│ │ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'int'
│ │ │ │ └── rangle (kind: TokenGT): '>'
│ │ │ ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
│ │ │ └── optional_no_panic (kind: TokenNoPanic): 'nopanic'
│ │ └── semicolon (kind: TokenSemicolon): ';'
│ ├── child #6 (kind: ItemStruct)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── struct_kw (kind: TokenStruct): 'struct'
│ │ ├── name (kind: TokenIdentifier): 'A'
│ │ ├── generic_params (kind: WrappedGenericParamList)
│ │ │ ├── langle (kind: TokenLT): '<'
│ │ │ ├── generic_params (kind: GenericParamList)
│ │ │ │ ├── item #0 (kind: GenericParamType)
│ │ │ │ │ └── name (kind: TokenIdentifier): 'A'
│ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ └── item #1 (kind: GenericParamType)
│ │ │ │ └── name (kind: TokenIdentifier): 'B'
│ │ │ └── rangle (kind: TokenGT): '>'
│ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ ├── members (kind: MemberList)
│ │ │ ├── item #0 (kind: Member)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── visibility (kind: VisibilityPub)
│ │ │ │ │ ├── pub_kw (kind: TokenPub): 'pub'
│ │ │ │ │ └── argument_clause (kind: OptionVisibilityPubArgumentClauseEmpty) []
│ │ │ │ ├── name (kind: TokenIdentifier): 'member'
│ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ ├── colon (kind: TokenColon): ':'
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'bool'
│ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ └── item #1 (kind: Member)
│ │ │ ├── attributes (kind: AttributeList)
│ │ │ │ └── child #0 (kind: Attribute)
│ │ │ │ ├── hash (kind: TokenHash): '#'
│ │ │ │ ├── lbrack (kind: TokenLBrack): '['
│ │ │ │ ├── attr (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'annot'
│ │ │ │ ├── arguments (kind: ArgListParenthesized)
│ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ └── item #0 (kind: Arg)
│ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'a'
│ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ └── rbrack (kind: TokenRBrack): ']'
│ │ │ ├── visibility (kind: VisibilityDefault) []
│ │ │ ├── name (kind: TokenIdentifier): 'member2'
│ │ │ └── type_clause (kind: TypeClause)
│ │ │ ├── colon (kind: TokenColon): ':'
│ │ │ └── ty (kind: ExprListParenthesized)
│ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ ├── expressions (kind: ExprList)
│ │ │ │ ├── item #0 (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'bool'
│ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ ├── item #1 (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'felt252'
│ │ │ │ ├── separator #1 (kind: TokenComma): ','
│ │ │ │ └── item #2 (kind: ExprListParenthesized)
│ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ ├── expressions (kind: ExprList) []
│ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ └── rparen (kind: TokenRParen): ')'
│ │ └── rbrace (kind: TokenRBrace): '}'
│ ├── child #7 (kind: ItemEnum)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityPub)
│ │ │ ├── pub_kw (kind: TokenPub): 'pub'
│ │ │ └── argument_clause (kind: VisibilityPubArgumentClause)
│ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ ├── argument (kind: TokenIdentifier): 'crate'
│ │ │ └── rparen (kind: TokenRParen): ')'
│ │ ├── enum_kw (kind: TokenEnum): 'enum'
│ │ ├── name (kind: TokenIdentifier): 'E'
│ │ ├── generic_params (kind: WrappedGenericParamList)
│ │ │ ├── langle (kind: TokenLT): '<'
│ │ │ ├── generic_params (kind: GenericParamList)
│ │ │ │ ├── item #0 (kind: GenericParamType)
│ │ │ │ │ └── name (kind: TokenIdentifier): 'A'
│ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ └── item #1 (kind: GenericParamType)
│ │ │ │ └── name (kind: TokenIdentifier): 'B'
│ │ │ └── rangle (kind: TokenGT): '>'
│ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ ├── variants (kind: VariantList)
│ │ │ ├── item #0 (kind: Variant)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── name (kind: TokenIdentifier): 'V1'
│ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ ├── colon (kind: TokenColon): ':'
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'A'
│ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ ├── item #1 (kind: Variant)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── name (kind: TokenIdentifier): 'V2'
│ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ ├── colon (kind: TokenColon): ':'
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'B'
│ │ │ ├── separator #1 (kind: TokenComma): ','
│ │ │ ├── item #2 (kind: Variant)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── name (kind: TokenIdentifier): 'VEmpty'
│ │ │ │ └── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ └── separator #2 (kind: TokenComma): ','
│ │ └── rbrace (kind: TokenRBrace): '}'
│ ├── child #8 (kind: FunctionWithBody)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── declaration (kind: FunctionDeclaration)
│ │ │ ├── optional_const (kind: OptionTerminalConstEmpty) []
│ │ │ ├── function_kw (kind: TokenFunction): 'fn'
│ │ │ ├── name (kind: TokenIdentifier): 'match_e_enum'
│ │ │ ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
│ │ │ └── signature (kind: FunctionSignature)
│ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ ├── parameters (kind: ParamList)
│ │ │ │ └── item #0 (kind: Param)
│ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ ├── name (kind: TokenIdentifier): 'e'
│ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ ├── colon (kind: TokenColon): ':'
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'E'
│ │ │ ├── rparen (kind: TokenRParen): ')'
│ │ │ ├── ret_ty (kind: ReturnTypeClause)
│ │ │ │ ├── arrow (kind: TokenArrow): '->'
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'felt252'
│ │ │ ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
│ │ │ └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
│ │ └── body (kind: ExprBlock)
│ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ ├── statements (kind: StatementList)
│ │ │ └── child #0 (kind: StatementExpr)
│ │ │ ├── attributes (kind: AttributeList) []
│ │ │ ├── expr (kind: ExprMatch)
│ │ │ │ ├── match_kw (kind: TokenMatch): 'match'
│ │ │ │ ├── expr (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TokenIdentifier): 'e'
│ │ │ │ ├── lbrace (kind: TokenLBrace): '{'
│ │ │ │ ├── arms (kind: MatchArms)
│ │ │ │ │ ├── item #0 (kind: MatchArm)
│ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ └── item #0 (kind: PatternEnum)
│ │ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'E'
│ │ │ │ │ │ │ │ ├── separator #0 (kind: TokenColonColon): '::'
│ │ │ │ │ │ │ │ └── item #1 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'V1'
│ │ │ │ │ │ │ └── pattern (kind: PatternEnumInnerPattern)
│ │ │ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ │ │ ├── pattern (kind: TokenUnderscore): '_'
│ │ │ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ │ │ ├── arrow (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ └── expression (kind: TokenLiteralNumber): '1'
│ │ │ │ │ ├── separator #0 (kind: TokenComma): ','
│ │ │ │ │ ├── item #1 (kind: MatchArm)
│ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ └── item #0 (kind: PatternEnum)
│ │ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'E'
│ │ │ │ │ │ │ │ ├── separator #0 (kind: TokenColonColon): '::'
│ │ │ │ │ │ │ │ └── item #1 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'V2'
│ │ │ │ │ │ │ └── pattern (kind: PatternEnumInnerPattern)
│ │ │ │ │ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ │ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'x'
│ │ │ │ │ │ │ └── rparen (kind: TokenRParen): ')'
│ │ │ │ │ │ ├── arrow (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ └── expression (kind: TokenLiteralNumber): '2'
│ │ │ │ │ ├── separator #1 (kind: TokenComma): ','
│ │ │ │ │ ├── item #2 (kind: MatchArm)
│ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ └── item #0 (kind: PatternEnum)
│ │ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'E'
│ │ │ │ │ │ │ │ ├── separator #0 (kind: TokenColonColon): '::'
│ │ │ │ │ │ │ │ └── item #1 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TokenIdentifier): 'VEmpty'
│ │ │ │ │ │ │ └── pattern (kind: OptionPatternEnumInnerPatternEmpty) []
│ │ │ │ │ │ ├── arrow (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ └── expression (kind: TokenLiteralNumber): '0'
│ │ │ │ │ └── separator #2 (kind: TokenComma): ','
│ │ │ │ └── rbrace (kind: TokenRBrace): '}'
│ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ └── rbrace (kind: TokenRBrace): '}'
│ ├── child #9 (kind: ItemTypeAlias)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── type_kw (kind: TokenType): 'type'
│ │ ├── name (kind: TokenIdentifier): 'Renamed'
│ │ ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
│ │ ├── eq (kind: TokenEq): '='
│ │ ├── ty (kind: ExprPath)
│ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ └── segments (kind: ExprPathInner)
│ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'submod'
│ │ │ ├── separator #0 (kind: TokenColonColon): '::'
│ │ │ ├── item #1 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'inner'
│ │ │ ├── separator #1 (kind: TokenColonColon): '::'
│ │ │ └── item #2 (kind: PathSegmentSimple)
│ │ │ └── ident (kind: TokenIdentifier): 'Other'
│ │ └── semicolon (kind: TokenSemicolon): ';'
│ ├── child #10 (kind: ItemTypeAlias)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── type_kw (kind: TokenType): 'type'
│ │ ├── name (kind: TokenIdentifier): 'Generic'
│ │ ├── generic_params (kind: WrappedGenericParamList)
│ │ │ ├── langle (kind: TokenLT): '<'
│ │ │ ├── generic_params (kind: GenericParamList)
│ │ │ │ └── item #0 (kind: GenericParamType)
│ │ │ │ └── name (kind: TokenIdentifier): 'T'
│ │ │ └── rangle (kind: TokenGT): '>'
│ │ ├── eq (kind: TokenEq): '='
│ │ ├── ty (kind: ExprPath)
│ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ └── segments (kind: ExprPathInner)
│ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'super'
│ │ │ ├── separator #0 (kind: TokenColonColon): '::'
│ │ │ ├── item #1 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'other'
│ │ │ ├── separator #1 (kind: TokenColonColon): '::'
│ │ │ └── item #2 (kind: PathSegmentWithGenericArgs)
│ │ │ ├── ident (kind: TokenIdentifier): 'OtherGeneric'
│ │ │ ├── separator (kind: TokenColonColon): '::'
│ │ │ └── generic_args (kind: GenericArgs)
│ │ │ ├── langle (kind: TokenLT): '<'
│ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ └── value (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TokenIdentifier): 'T'
│ │ │ └── rangle (kind: TokenGT): '>'
│ │ └── semicolon (kind: TokenSemicolon): ';'
│ ├── child #11 (kind: ItemInlineMacro)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── path (kind: ExprPath)
│ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ └── segments (kind: ExprPathInner)
│ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ └── ident (kind: TokenIdentifier): 'inline_item_macro'
│ │ ├── bang (kind: TokenNot): '!'
│ │ ├── arguments (kind: TokenTreeNode)
│ │ │ └── subtree (kind: ParenthesizedTokenTree)
│ │ │ ├── lparen (kind: TokenLParen): '('
│ │ │ ├── tokens (kind: TokenList)
│ │ │ │ ├── child #0 (kind: TokenTreeLeaf)
│ │ │ │ │ └── leaf (kind: TokenIdentifier): 'x'
│ │ │ │ ├── child #1 (kind: TokenTreeLeaf)
│ │ │ │ │ └── leaf (kind: TokenComma): ','
│ │ │ │ ├── child #2 (kind: TokenTreeLeaf)
│ │ │ │ │ └── leaf (kind: TokenIdentifier): 'y'
│ │ │ │ ├── child #3 (kind: TokenTreeLeaf)
│ │ │ │ │ └── leaf (kind: TokenComma): ','
│ │ │ │ └── child #4 (kind: TokenTreeLeaf)
│ │ │ │ └── leaf (kind: TokenIdentifier): 'z'
│ │ │ └── rparen (kind: TokenRParen): ')'
│ │ └── semicolon (kind: TokenSemicolon): ';'
│ └── child #12: Missing []
└── eof (kind: TokenEndOfFile).
//! > ==========================================================================
//! > Test parsing code, with trivia.
//! > test_runner_name
test_full_parser_tree(expect_diagnostics: true)
//! > cairo_code
>>> file: src/parser_test_data/cairo_test_files/test1.cairo
//! > print_trivia
true
//! > print_colors
false
//! > expected_diagnostics
error[E1000]: Skipped tokens. Expected: Const/Enum/ExternFunction/ExternType/Function/Impl/InlineMacro/Module/Struct/Trait/TypeAlias/Use or an attribute.
--> src/parser_test_data/cairo_test_files/test1.cairo:6:1
;
^
error[E1000]: Skipped tokens. Expected: parameter.
--> src/parser_test_data/cairo_test_files/test1.cairo:7:8
fn foo(,var1: int,, mut ref var2: felt252,) -> int {
^
error[E1000]: Skipped tokens. Expected: parameter.
--> src/parser_test_data/cairo_test_files/test1.cairo:7:19
fn foo(,var1: int,, mut ref var2: felt252,) -> int {
^
error[E1001]: Missing token '}'.
--> src/parser_test_data/cairo_test_files/test1.cairo:32:14
return x;
^
error[E1023]: Missing tokens. Expected an item after attributes.
--> src/parser_test_data/cairo_test_files/test1.cairo:64:26
#[attribute_without_item]
^
//! > expected_tree
└── root (kind: SyntaxFile)
├── items (kind: ModuleItemList)
│ ├── child #0 (kind: ItemModule)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── module_kw (kind: TerminalModule)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenModule): 'mod'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── name (kind: TerminalIdentifier)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenIdentifier): 'submod'
│ │ │ └── trailing_trivia (kind: Trivia) []
│ │ └── body (kind: TerminalSemicolon)
│ │ ├── leading_trivia (kind: Trivia) []
│ │ ├── token (kind: TokenSemicolon): ';'
│ │ └── trailing_trivia (kind: Trivia)
│ │ └── child #0 (kind: TokenNewline).
│ ├── child #1 (kind: ItemUse)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── use_kw (kind: TerminalUse)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenUse): 'use'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ ├── use_path (kind: UsePathSingle)
│ │ │ ├── ident (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'submod'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── colon_colon (kind: TerminalColonColon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenColonColon): '::'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── use_path (kind: UsePathLeaf)
│ │ │ ├── ident (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'something'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── alias_clause (kind: OptionAliasClauseEmpty) []
│ │ └── semicolon (kind: TerminalSemicolon)
│ │ ├── leading_trivia (kind: Trivia) []
│ │ ├── token (kind: TokenSemicolon): ';'
│ │ └── trailing_trivia (kind: Trivia)
│ │ └── child #0 (kind: TokenNewline).
│ ├── child #2 (kind: FunctionWithBody)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── declaration (kind: FunctionDeclaration)
│ │ │ ├── optional_const (kind: OptionTerminalConstEmpty) []
│ │ │ ├── function_kw (kind: TerminalFunction)
│ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ ├── child #0 (kind: TokenNewline).
│ │ │ │ │ ├── child #1 (kind: TokenSingleLineComment): '// Func foo'
│ │ │ │ │ ├── child #2 (kind: TokenNewline).
│ │ │ │ │ ├── child #3 (kind: TokenSingleLineComment): '// Second line'
│ │ │ │ │ ├── child #4 (kind: TokenNewline).
│ │ │ │ │ ├── child #5 (kind: TokenSkipped): ';'
│ │ │ │ │ └── child #6 (kind: TokenNewline).
│ │ │ │ ├── token (kind: TokenFunction): 'fn'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'foo'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
│ │ │ └── signature (kind: FunctionSignature)
│ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── parameters (kind: ParamList)
│ │ │ │ ├── item #0 (kind: Param)
│ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenSkipped): ','
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'var1'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ │ ├── colon (kind: TerminalColon)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenColon): ':'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'int'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── item #1 (kind: Param)
│ │ │ │ │ ├── modifiers (kind: ModifierList)
│ │ │ │ │ │ ├── child #0 (kind: TerminalMut)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ ├── child #0 (kind: TokenSkipped): ','
│ │ │ │ │ │ │ │ └── child #1 (kind: TokenWhitespace).
│ │ │ │ │ │ │ ├── token (kind: TokenMut): 'mut'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ └── child #1 (kind: TerminalRef)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenRef): 'ref'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'var2'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ │ ├── colon (kind: TerminalColon)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenColon): ':'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'felt252'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── separator #1 (kind: TerminalComma)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── rparen (kind: TerminalRParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── ret_ty (kind: ReturnTypeClause)
│ │ │ │ ├── arrow (kind: TerminalArrow)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenArrow): '->'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'int'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
│ │ │ └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
│ │ └── body (kind: ExprBlock)
│ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenNewline).
│ │ ├── statements (kind: StatementList)
│ │ │ ├── child #0 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TerminalLet)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenLet): 'let'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'bla3'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TerminalEq)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenEq): '='
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── rhs (kind: ExprUnary)
│ │ │ │ │ ├── op (kind: TerminalMinus)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenMinus): '-'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── expr (kind: ExprUnary)
│ │ │ │ │ ├── op (kind: TerminalMinus)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenMinus): '-'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── expr (kind: TerminalLiteralNumber)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenLiteralNumber): '7'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ ├── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── child #1 (kind: TokenSingleLineComment): '// succeeds, ok'
│ │ │ │ └── child #2 (kind: TokenNewline).
│ │ │ ├── child #1 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TerminalLet)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenLet): 'let'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'bla4'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TerminalEq)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenEq): '='
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── rhs (kind: ExprUnary)
│ │ │ │ │ ├── op (kind: TerminalMinus)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenMinus): '-'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── expr (kind: ExprUnary)
│ │ │ │ │ ├── op (kind: TerminalNot)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenNot): '!'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── expr (kind: ExprUnary)
│ │ │ │ │ ├── op (kind: TerminalMinus)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenMinus): '-'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── expr (kind: ExprUnary)
│ │ │ │ │ ├── op (kind: TerminalNot)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenNot): '!'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── expr (kind: TerminalLiteralNumber)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenLiteralNumber): '8'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ ├── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── child #1 (kind: TokenSingleLineComment): '// succeeds, ok'
│ │ │ │ └── child #2 (kind: TokenNewline).
│ │ │ ├── child #2 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TerminalLet)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenLet): 'let'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'x'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TerminalEq)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenEq): '='
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── rhs (kind: TerminalLiteralNumber)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenLiteralNumber): '1'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── child #3 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TerminalLet)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenLet): 'let'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'y'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TerminalEq)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenEq): '='
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── rhs (kind: ExprMatch)
│ │ │ │ │ ├── match_kw (kind: TerminalMatch)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenMatch): 'match'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── expr (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'x'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ │ ├── arms (kind: MatchArms)
│ │ │ │ │ │ ├── item #0 (kind: MatchArm)
│ │ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ │ └── item #0 (kind: TerminalLiteralNumber)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '0'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ ├── arrow (kind: TerminalMatchArrow)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ └── expression (kind: ExprBlock)
│ │ │ │ │ │ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ ├── statements (kind: StatementList)
│ │ │ │ │ │ │ │ └── child #0 (kind: StatementExpr)
│ │ │ │ │ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ │ │ │ │ ├── expr (kind: TerminalLiteralNumber)
│ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '1'
│ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ │ │ │ │ │ └── rbrace (kind: TerminalRBrace)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenRBrace): '}'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ │ │ ├── item #1 (kind: MatchArm)
│ │ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ │ └── item #0 (kind: TerminalUnderscore)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ │ ├── token (kind: TokenUnderscore): '_'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ ├── arrow (kind: TerminalMatchArrow)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ └── expression (kind: TerminalLiteralNumber)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '0'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ └── separator #1 (kind: TerminalComma)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ │ └── rbrace (kind: TerminalRBrace)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenRBrace): '}'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── child #4 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TerminalLet)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenLet): 'let'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'z'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TerminalEq)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenEq): '='
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── rhs (kind: ExprIf)
│ │ │ │ │ ├── if_kw (kind: TerminalIf)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIf): 'if'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── conditions (kind: ConditionListAnd)
│ │ │ │ │ │ └── item #0 (kind: ConditionExpr)
│ │ │ │ │ │ └── expr (kind: ExprBinary)
│ │ │ │ │ │ ├── lhs (kind: ExprBinary)
│ │ │ │ │ │ │ ├── lhs (kind: TerminalLiteralNumber)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '0'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ ├── op (kind: TerminalPlus)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenPlus): '+'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ └── rhs (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'x'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── op (kind: TerminalEqEq)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenEqEq): '=='
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ └── rhs (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'y'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── if_block (kind: ExprBlock)
│ │ │ │ │ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ │ │ ├── statements (kind: StatementList)
│ │ │ │ │ │ │ └── child #0 (kind: StatementExpr)
│ │ │ │ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ │ │ │ ├── expr (kind: TerminalLiteralNumber)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '1'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ │ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ │ │ │ │ └── rbrace (kind: TerminalRBrace)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── token (kind: TokenRBrace): '}'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ └── else_clause (kind: ElseClause)
│ │ │ │ │ ├── else_kw (kind: TerminalElse)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenElse): 'else'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ └── else_block_or_if (kind: ExprBlock)
│ │ │ │ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ │ ├── statements (kind: StatementList)
│ │ │ │ │ │ └── child #0 (kind: StatementExpr)
│ │ │ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ │ │ ├── expr (kind: TerminalLiteralNumber)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '2'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ │ │ │ └── rbrace (kind: TerminalRBrace)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenRBrace): '}'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── child #5 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TerminalLet)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenLet): 'let'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'block_combination'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TerminalEq)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenEq): '='
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── rhs (kind: ExprBinary)
│ │ │ │ │ ├── lhs (kind: ExprBinary)
│ │ │ │ │ │ ├── lhs (kind: ExprBlock)
│ │ │ │ │ │ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── statements (kind: StatementList)
│ │ │ │ │ │ │ │ └── child #0 (kind: StatementExpr)
│ │ │ │ │ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ │ │ │ │ ├── expr (kind: TerminalLiteralNumber)
│ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '5'
│ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ │ │ │ │ │ └── rbrace (kind: TerminalRBrace)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenRBrace): '}'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── op (kind: TerminalPlus)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenPlus): '+'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ └── rhs (kind: ExprMatch)
│ │ │ │ │ │ ├── match_kw (kind: TerminalMatch)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenMatch): 'match'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── expr (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'x'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── arms (kind: MatchArms)
│ │ │ │ │ │ │ ├── item #0 (kind: MatchArm)
│ │ │ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ │ │ └── item #0 (kind: PatternEnum)
│ │ │ │ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'E'
│ │ │ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ │ ├── separator #0 (kind: TerminalColonColon)
│ │ │ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ │ │ ├── token (kind: TokenColonColon): '::'
│ │ │ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ │ └── item #1 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'V1'
│ │ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ └── pattern (kind: PatternEnumInnerPattern)
│ │ │ │ │ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ ├── pattern (kind: TerminalUnderscore)
│ │ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ │ ├── token (kind: TokenUnderscore): '_'
│ │ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ │ ├── arrow (kind: TerminalMatchArrow)
│ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ ├── token (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ │ └── expression (kind: TerminalLiteralNumber)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '4'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ └── item #1 (kind: MatchArm)
│ │ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ │ └── item #0 (kind: PatternEnum)
│ │ │ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'E'
│ │ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ ├── separator #0 (kind: TerminalColonColon)
│ │ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ │ ├── token (kind: TokenColonColon): '::'
│ │ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ └── item #1 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'V2'
│ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ └── pattern (kind: PatternEnumInnerPattern)
│ │ │ │ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── pattern (kind: TerminalUnderscore)
│ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ ├── token (kind: TokenUnderscore): '_'
│ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ ├── arrow (kind: TerminalMatchArrow)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ └── expression (kind: TerminalLiteralNumber)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '2'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ └── rbrace (kind: TerminalRBrace)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenRBrace): '}'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ │ ├── op (kind: TerminalMinus)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── token (kind: TokenMinus): '-'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ └── rhs (kind: ExprIf)
│ │ │ │ │ ├── if_kw (kind: TerminalIf)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIf): 'if'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── conditions (kind: ConditionListAnd)
│ │ │ │ │ │ └── item #0 (kind: ConditionExpr)
│ │ │ │ │ │ └── expr (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'cond'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── if_block (kind: ExprBlock)
│ │ │ │ │ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── statements (kind: StatementList)
│ │ │ │ │ │ │ └── child #0 (kind: StatementExpr)
│ │ │ │ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ │ │ │ ├── expr (kind: TerminalLiteralNumber)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '32'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ │ │ │ │ └── rbrace (kind: TerminalRBrace)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenRBrace): '}'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ └── else_clause (kind: ElseClause)
│ │ │ │ │ ├── else_kw (kind: TerminalElse)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenElse): 'else'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ └── else_block_or_if (kind: ExprBlock)
│ │ │ │ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── statements (kind: StatementList)
│ │ │ │ │ │ └── child #0 (kind: StatementExpr)
│ │ │ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ │ │ ├── expr (kind: TerminalLiteralNumber)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '1'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ │ │ │ └── rbrace (kind: TerminalRBrace)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenRBrace): '}'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── child #6 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TerminalLet)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenLet): 'let'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'w'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TerminalEq)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenEq): '='
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── rhs (kind: ExprErrorPropagate)
│ │ │ │ │ ├── expr (kind: ExprFunctionCall)
│ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'calc_with_error'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ │ ├── item #0 (kind: Arg)
│ │ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'x'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ ├── item #1 (kind: Arg)
│ │ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ │ └── value (kind: ExprErrorPropagate)
│ │ │ │ │ │ │ │ ├── expr (kind: ExprPath)
│ │ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'y'
│ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ └── op (kind: TerminalQuestionMark)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenQuestionMark): '?'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── separator #1 (kind: TerminalComma)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ └── item #2 (kind: Arg)
│ │ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'z'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── op (kind: TerminalQuestionMark)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenQuestionMark): '?'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── child #7 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TerminalLet)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenLet): 'let'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'member_value'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TerminalEq)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenEq): '='
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── rhs (kind: ExprErrorPropagate)
│ │ │ │ │ ├── expr (kind: ExprBinary)
│ │ │ │ │ │ ├── lhs (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'value'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── op (kind: TerminalDot)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenDot): '.'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ └── rhs (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'member'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── op (kind: TerminalQuestionMark)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenQuestionMark): '?'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── child #8 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TerminalLet)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenLet): 'let'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'method_return'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TerminalEq)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenEq): '='
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── rhs (kind: ExprErrorPropagate)
│ │ │ │ │ ├── expr (kind: ExprBinary)
│ │ │ │ │ │ ├── lhs (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'value'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── op (kind: TerminalDot)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenDot): '.'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ └── rhs (kind: ExprFunctionCall)
│ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'method'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── arguments (kind: ArgList) []
│ │ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── op (kind: TerminalQuestionMark)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenQuestionMark): '?'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── child #9 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TerminalLet)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenLet): 'let'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'x'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ │ ├── eq (kind: TerminalEq)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenEq): '='
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── rhs (kind: TerminalTrue)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenTrue): 'true'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ ├── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── child #1 (kind: TokenSingleLineComment): '// bla1'
│ │ │ │ └── child #2 (kind: TokenNewline).
│ │ │ ├── child #10 (kind: StatementExpr)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── expr (kind: ExprBinary)
│ │ │ │ │ ├── lhs (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ ├── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ ├── child #1 (kind: TokenSingleLineComment): '// bla2'
│ │ │ │ │ │ │ ├── child #2 (kind: TokenNewline).
│ │ │ │ │ │ │ └── child #3 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'z'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── op (kind: TerminalEq)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenEq): '='
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ └── rhs (kind: TerminalLiteralNumber)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenLiteralNumber): '5'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── child #11 (kind: StatementExpr)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── expr (kind: ExprFunctionCall)
│ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'func1'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ └── item #0 (kind: Arg)
│ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'x'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── child #12 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TerminalLet)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenLet): 'let'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'x'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── type_clause (kind: TypeClause)
│ │ │ │ │ ├── colon (kind: TerminalColon)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenColon): ':'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentWithGenericArgs)
│ │ │ │ │ ├── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'Option'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── separator (kind: OptionTerminalColonColonEmpty) []
│ │ │ │ │ └── generic_args (kind: GenericArgs)
│ │ │ │ │ ├── langle (kind: TerminalLT)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLT): '<'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'felt252'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── rangle (kind: TerminalGT)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenGT): '>'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── eq (kind: TerminalEq)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenEq): '='
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── rhs (kind: ExprFunctionCall)
│ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'Some'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ └── item #0 (kind: Arg)
│ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ └── value (kind: TerminalLiteralNumber)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '5'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── child #13 (kind: StatementLet)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── let_kw (kind: TerminalLet)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenLet): 'let'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'x'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── type_clause (kind: TypeClause)
│ │ │ │ │ ├── colon (kind: TerminalColon)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenColon): ':'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentWithGenericArgs)
│ │ │ │ │ ├── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'Option'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── separator (kind: OptionTerminalColonColonEmpty) []
│ │ │ │ │ └── generic_args (kind: GenericArgs)
│ │ │ │ │ ├── langle (kind: TerminalLT)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLT): '<'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'felt252'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── rangle (kind: TerminalGT)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenGT): '>'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── eq (kind: TerminalEq)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenEq): '='
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── rhs (kind: ExprFunctionCall)
│ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'Some'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ └── item #0 (kind: Arg)
│ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ └── value (kind: TerminalLiteralNumber)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '5'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── let_else_clause (kind: OptionLetElseClauseEmpty) []
│ │ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── child #14 (kind: StatementExpr)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── expr (kind: ExprFunctionCall)
│ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentWithGenericArgs)
│ │ │ │ │ │ ├── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'func2'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── separator (kind: TerminalColonColon)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenColonColon): '::'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ └── generic_args (kind: GenericArgs)
│ │ │ │ │ │ ├── langle (kind: TerminalLT)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenLT): '<'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'int'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ └── rangle (kind: TerminalGT)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenGT): '>'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── arguments (kind: ArgListParenthesized)
│ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ └── item #0 (kind: Arg)
│ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'x'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ │ └── child #15 (kind: StatementReturn)
│ │ │ ├── attributes (kind: AttributeList) []
│ │ │ ├── return_kw (kind: TerminalReturn)
│ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── token (kind: TokenReturn): 'return'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── expr_clause (kind: ExprClause)
│ │ │ │ └── expr (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'x'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── semicolon (kind: TerminalSemicolon)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenSemicolon): ';'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenNewline).
│ │ └── rbrace (kind: TerminalRBrace)
│ │ ├── leading_trivia (kind: Trivia) []
│ │ ├── token: Missing
│ │ └── trailing_trivia (kind: Trivia) []
│ ├── child #3 (kind: FunctionWithBody)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── declaration (kind: FunctionDeclaration)
│ │ │ ├── optional_const (kind: OptionTerminalConstEmpty) []
│ │ │ ├── function_kw (kind: TerminalFunction)
│ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ ├── token (kind: TokenFunction): 'fn'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'bar'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── generic_params (kind: WrappedGenericParamList)
│ │ │ │ ├── langle (kind: TerminalLT)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenLT): '<'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── generic_params (kind: GenericParamList)
│ │ │ │ │ ├── item #0 (kind: GenericParamType)
│ │ │ │ │ │ └── name (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'A'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ └── item #1 (kind: GenericParamType)
│ │ │ │ │ └── name (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'B'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── rangle (kind: TerminalGT)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenGT): '>'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── signature (kind: FunctionSignature)
│ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── parameters (kind: ParamList) []
│ │ │ ├── rparen (kind: TerminalRParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── ret_ty (kind: ReturnTypeClause)
│ │ │ │ ├── arrow (kind: TerminalArrow)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenArrow): '->'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'felt252'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
│ │ │ └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
│ │ └── body (kind: ExprBlock)
│ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── statements (kind: StatementList) []
│ │ └── rbrace (kind: TerminalRBrace)
│ │ ├── leading_trivia (kind: Trivia) []
│ │ ├── token (kind: TokenRBrace): '}'
│ │ └── trailing_trivia (kind: Trivia)
│ │ └── child #0 (kind: TokenNewline).
│ ├── child #4 (kind: ItemExternType)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── extern_kw (kind: TerminalExtern)
│ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── token (kind: TokenExtern): 'extern'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── type_kw (kind: TerminalType)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenType): 'type'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── name (kind: TerminalIdentifier)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenIdentifier): 'S'
│ │ │ └── trailing_trivia (kind: Trivia) []
│ │ ├── generic_params (kind: WrappedGenericParamList)
│ │ │ ├── langle (kind: TerminalLT)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenLT): '<'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── generic_params (kind: GenericParamList) []
│ │ │ └── rangle (kind: TerminalGT)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenGT): '>'
│ │ │ └── trailing_trivia (kind: Trivia) []
│ │ └── semicolon (kind: TerminalSemicolon)
│ │ ├── leading_trivia (kind: Trivia) []
│ │ ├── token (kind: TokenSemicolon): ';'
│ │ └── trailing_trivia (kind: Trivia)
│ │ └── child #0 (kind: TokenNewline).
│ ├── child #5 (kind: ItemExternFunction)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── extern_kw (kind: TerminalExtern)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenExtern): 'extern'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── declaration (kind: FunctionDeclaration)
│ │ │ ├── optional_const (kind: OptionTerminalConstEmpty) []
│ │ │ ├── function_kw (kind: TerminalFunction)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenFunction): 'fn'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'glee'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── generic_params (kind: WrappedGenericParamList)
│ │ │ │ ├── langle (kind: TerminalLT)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenLT): '<'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── generic_params (kind: GenericParamList)
│ │ │ │ │ ├── item #0 (kind: GenericParamType)
│ │ │ │ │ │ └── name (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'A'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ └── item #1 (kind: GenericParamType)
│ │ │ │ │ └── name (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'b'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── rangle (kind: TerminalGT)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenGT): '>'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── signature (kind: FunctionSignature)
│ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── parameters (kind: ParamList)
│ │ │ │ ├── item #0 (kind: Param)
│ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'var1'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ │ ├── colon (kind: TerminalColon)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenColon): ':'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'int'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── separator #0 (kind: TerminalComma)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── rparen (kind: TerminalRParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── ret_ty (kind: ReturnTypeClause)
│ │ │ │ ├── arrow (kind: TerminalArrow)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenArrow): '->'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'crate'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── separator #0 (kind: TerminalColonColon)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenColonColon): '::'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── item #1 (kind: PathSegmentWithGenericArgs)
│ │ │ │ ├── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'S'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── separator (kind: OptionTerminalColonColonEmpty) []
│ │ │ │ └── generic_args (kind: GenericArgs)
│ │ │ │ ├── langle (kind: TerminalLT)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenLT): '<'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'int'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── rangle (kind: TerminalGT)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenGT): '>'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
│ │ │ └── optional_no_panic (kind: TerminalNoPanic)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenNoPanic): 'nopanic'
│ │ │ └── trailing_trivia (kind: Trivia) []
│ │ └── semicolon (kind: TerminalSemicolon)
│ │ ├── leading_trivia (kind: Trivia) []
│ │ ├── token (kind: TokenSemicolon): ';'
│ │ └── trailing_trivia (kind: Trivia)
│ │ └── child #0 (kind: TokenNewline).
│ ├── child #6 (kind: ItemStruct)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── struct_kw (kind: TerminalStruct)
│ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── token (kind: TokenStruct): 'struct'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── name (kind: TerminalIdentifier)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenIdentifier): 'A'
│ │ │ └── trailing_trivia (kind: Trivia) []
│ │ ├── generic_params (kind: WrappedGenericParamList)
│ │ │ ├── langle (kind: TerminalLT)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenLT): '<'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── generic_params (kind: GenericParamList)
│ │ │ │ ├── item #0 (kind: GenericParamType)
│ │ │ │ │ └── name (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'A'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── item #1 (kind: GenericParamType)
│ │ │ │ └── name (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'B'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── rangle (kind: TerminalGT)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenGT): '>'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenNewline).
│ │ ├── members (kind: MemberList)
│ │ │ ├── item #0 (kind: Member)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── visibility (kind: VisibilityPub)
│ │ │ │ │ ├── pub_kw (kind: TerminalPub)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── token (kind: TokenPub): 'pub'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ └── argument_clause (kind: OptionVisibilityPubArgumentClauseEmpty) []
│ │ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'member'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ ├── colon (kind: TerminalColon)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenColon): ':'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'bool'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ └── item #1 (kind: Member)
│ │ │ ├── attributes (kind: AttributeList)
│ │ │ │ └── child #0 (kind: Attribute)
│ │ │ │ ├── hash (kind: TerminalHash)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenHash): '#'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── lbrack (kind: TerminalLBrack)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenLBrack): '['
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── attr (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'annot'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── arguments (kind: ArgListParenthesized)
│ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── arguments (kind: ArgList)
│ │ │ │ │ │ └── item #0 (kind: Arg)
│ │ │ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ │ │ └── arg_clause (kind: ArgClauseUnnamed)
│ │ │ │ │ │ └── value (kind: ExprPath)
│ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'a'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── rbrack (kind: TerminalRBrack)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenRBrack): ']'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── visibility (kind: VisibilityDefault) []
│ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── token (kind: TokenIdentifier): 'member2'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── type_clause (kind: TypeClause)
│ │ │ ├── colon (kind: TerminalColon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenColon): ':'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ └── ty (kind: ExprListParenthesized)
│ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── expressions (kind: ExprList)
│ │ │ │ ├── item #0 (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'bool'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── item #1 (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'felt252'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── separator #1 (kind: TerminalComma)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── item #2 (kind: ExprListParenthesized)
│ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── expressions (kind: ExprList) []
│ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── rparen (kind: TerminalRParen)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenNewline).
│ │ └── rbrace (kind: TerminalRBrace)
│ │ ├── leading_trivia (kind: Trivia) []
│ │ ├── token (kind: TokenRBrace): '}'
│ │ └── trailing_trivia (kind: Trivia)
│ │ └── child #0 (kind: TokenNewline).
│ ├── child #7 (kind: ItemEnum)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityPub)
│ │ │ ├── pub_kw (kind: TerminalPub)
│ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ ├── token (kind: TokenPub): 'pub'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── argument_clause (kind: VisibilityPubArgumentClause)
│ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── argument (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'crate'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── rparen (kind: TerminalRParen)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── enum_kw (kind: TerminalEnum)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenEnum): 'enum'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── name (kind: TerminalIdentifier)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenIdentifier): 'E'
│ │ │ └── trailing_trivia (kind: Trivia) []
│ │ ├── generic_params (kind: WrappedGenericParamList)
│ │ │ ├── langle (kind: TerminalLT)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenLT): '<'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── generic_params (kind: GenericParamList)
│ │ │ │ ├── item #0 (kind: GenericParamType)
│ │ │ │ │ └── name (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'A'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── item #1 (kind: GenericParamType)
│ │ │ │ └── name (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'B'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── rangle (kind: TerminalGT)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenGT): '>'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenNewline).
│ │ ├── variants (kind: VariantList)
│ │ │ ├── item #0 (kind: Variant)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'V1'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ ├── colon (kind: TerminalColon)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenColon): ':'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'A'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── item #1 (kind: Variant)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'V2'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ ├── colon (kind: TerminalColon)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenColon): ':'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'B'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── separator #1 (kind: TerminalComma)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── item #2 (kind: Variant)
│ │ │ │ ├── attributes (kind: AttributeList) []
│ │ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'VEmpty'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── type_clause (kind: OptionTypeClauseEmpty) []
│ │ │ └── separator #2 (kind: TerminalComma)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenComma): ','
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenNewline).
│ │ └── rbrace (kind: TerminalRBrace)
│ │ ├── leading_trivia (kind: Trivia) []
│ │ ├── token (kind: TokenRBrace): '}'
│ │ └── trailing_trivia (kind: Trivia)
│ │ └── child #0 (kind: TokenNewline).
│ ├── child #8 (kind: FunctionWithBody)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── declaration (kind: FunctionDeclaration)
│ │ │ ├── optional_const (kind: OptionTerminalConstEmpty) []
│ │ │ ├── function_kw (kind: TerminalFunction)
│ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ ├── token (kind: TokenFunction): 'fn'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'match_e_enum'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
│ │ │ └── signature (kind: FunctionSignature)
│ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── parameters (kind: ParamList)
│ │ │ │ └── item #0 (kind: Param)
│ │ │ │ ├── modifiers (kind: ModifierList) []
│ │ │ │ ├── name (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'e'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ └── type_clause (kind: TypeClause)
│ │ │ │ ├── colon (kind: TerminalColon)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenColon): ':'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'E'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── rparen (kind: TerminalRParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── ret_ty (kind: ReturnTypeClause)
│ │ │ │ ├── arrow (kind: TerminalArrow)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenArrow): '->'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── ty (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'felt252'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ ├── implicits_clause (kind: OptionImplicitsClauseEmpty) []
│ │ │ └── optional_no_panic (kind: OptionTerminalNoPanicEmpty) []
│ │ └── body (kind: ExprBlock)
│ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenNewline).
│ │ ├── statements (kind: StatementList)
│ │ │ └── child #0 (kind: StatementExpr)
│ │ │ ├── attributes (kind: AttributeList) []
│ │ │ ├── expr (kind: ExprMatch)
│ │ │ │ ├── match_kw (kind: TerminalMatch)
│ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ ├── token (kind: TokenMatch): 'match'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── expr (kind: ExprPath)
│ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'e'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── lbrace (kind: TerminalLBrace)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenLBrace): '{'
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ ├── arms (kind: MatchArms)
│ │ │ │ │ ├── item #0 (kind: MatchArm)
│ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ └── item #0 (kind: PatternEnum)
│ │ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'E'
│ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── separator #0 (kind: TerminalColonColon)
│ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ ├── token (kind: TokenColonColon): '::'
│ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ └── item #1 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'V1'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ └── pattern (kind: PatternEnumInnerPattern)
│ │ │ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── pattern (kind: TerminalUnderscore)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenUnderscore): '_'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── arrow (kind: TerminalMatchArrow)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ └── expression (kind: TerminalLiteralNumber)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '1'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── separator #0 (kind: TerminalComma)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ │ ├── item #1 (kind: MatchArm)
│ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ └── item #0 (kind: PatternEnum)
│ │ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'E'
│ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── separator #0 (kind: TerminalColonColon)
│ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ ├── token (kind: TokenColonColon): '::'
│ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ └── item #1 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'V2'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ └── pattern (kind: PatternEnumInnerPattern)
│ │ │ │ │ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── pattern (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'x'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ └── rparen (kind: TerminalRParen)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ ├── arrow (kind: TerminalMatchArrow)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ └── expression (kind: TerminalLiteralNumber)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '2'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ ├── separator #1 (kind: TerminalComma)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ │ ├── item #2 (kind: MatchArm)
│ │ │ │ │ │ ├── patterns (kind: PatternListOr)
│ │ │ │ │ │ │ └── item #0 (kind: PatternEnum)
│ │ │ │ │ │ │ ├── path (kind: ExprPath)
│ │ │ │ │ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ │ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ │ │ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'E'
│ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── separator #0 (kind: TerminalColonColon)
│ │ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ │ ├── token (kind: TokenColonColon): '::'
│ │ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ └── item #1 (kind: PathSegmentSimple)
│ │ │ │ │ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ │ ├── token (kind: TokenIdentifier): 'VEmpty'
│ │ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ │ └── pattern (kind: OptionPatternEnumInnerPatternEmpty) []
│ │ │ │ │ │ ├── arrow (kind: TerminalMatchArrow)
│ │ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ │ ├── token (kind: TokenMatchArrow): '=>'
│ │ │ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ │ │ └── expression (kind: TerminalLiteralNumber)
│ │ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ │ ├── token (kind: TokenLiteralNumber): '0'
│ │ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ │ └── separator #2 (kind: TerminalComma)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ │ └── rbrace (kind: TerminalRBrace)
│ │ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── token (kind: TokenRBrace): '}'
│ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ └── semicolon (kind: OptionTerminalSemicolonEmpty) []
│ │ └── rbrace (kind: TerminalRBrace)
│ │ ├── leading_trivia (kind: Trivia) []
│ │ ├── token (kind: TokenRBrace): '}'
│ │ └── trailing_trivia (kind: Trivia)
│ │ └── child #0 (kind: TokenNewline).
│ ├── child #9 (kind: ItemTypeAlias)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── type_kw (kind: TerminalType)
│ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── token (kind: TokenType): 'type'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── name (kind: TerminalIdentifier)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenIdentifier): 'Renamed'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── generic_params (kind: OptionWrappedGenericParamListEmpty) []
│ │ ├── eq (kind: TerminalEq)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenEq): '='
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── ty (kind: ExprPath)
│ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ └── segments (kind: ExprPathInner)
│ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'submod'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── separator #0 (kind: TerminalColonColon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenColonColon): '::'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── item #1 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'inner'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── separator #1 (kind: TerminalColonColon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenColonColon): '::'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── item #2 (kind: PathSegmentSimple)
│ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenIdentifier): 'Other'
│ │ │ └── trailing_trivia (kind: Trivia) []
│ │ └── semicolon (kind: TerminalSemicolon)
│ │ ├── leading_trivia (kind: Trivia) []
│ │ ├── token (kind: TokenSemicolon): ';'
│ │ └── trailing_trivia (kind: Trivia)
│ │ └── child #0 (kind: TokenNewline).
│ ├── child #10 (kind: ItemTypeAlias)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── visibility (kind: VisibilityDefault) []
│ │ ├── type_kw (kind: TerminalType)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenType): 'type'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── name (kind: TerminalIdentifier)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenIdentifier): 'Generic'
│ │ │ └── trailing_trivia (kind: Trivia) []
│ │ ├── generic_params (kind: WrappedGenericParamList)
│ │ │ ├── langle (kind: TerminalLT)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenLT): '<'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── generic_params (kind: GenericParamList)
│ │ │ │ └── item #0 (kind: GenericParamType)
│ │ │ │ └── name (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'T'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── rangle (kind: TerminalGT)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenGT): '>'
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── eq (kind: TerminalEq)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenEq): '='
│ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenWhitespace).
│ │ ├── ty (kind: ExprPath)
│ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ └── segments (kind: ExprPathInner)
│ │ │ ├── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'super'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── separator #0 (kind: TerminalColonColon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenColonColon): '::'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── item #1 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'other'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── separator #1 (kind: TerminalColonColon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenColonColon): '::'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── item #2 (kind: PathSegmentWithGenericArgs)
│ │ │ ├── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'OtherGeneric'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── separator (kind: TerminalColonColon)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenColonColon): '::'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── generic_args (kind: GenericArgs)
│ │ │ ├── langle (kind: TerminalLT)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenLT): '<'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── generic_args (kind: GenericArgList)
│ │ │ │ └── item #0 (kind: GenericArgUnnamed)
│ │ │ │ └── value (kind: ExprPath)
│ │ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ │ └── segments (kind: ExprPathInner)
│ │ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'T'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── rangle (kind: TerminalGT)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenGT): '>'
│ │ │ └── trailing_trivia (kind: Trivia) []
│ │ └── semicolon (kind: TerminalSemicolon)
│ │ ├── leading_trivia (kind: Trivia) []
│ │ ├── token (kind: TokenSemicolon): ';'
│ │ └── trailing_trivia (kind: Trivia)
│ │ └── child #0 (kind: TokenNewline).
│ ├── child #11 (kind: ItemInlineMacro)
│ │ ├── attributes (kind: AttributeList) []
│ │ ├── path (kind: ExprPath)
│ │ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ │ └── segments (kind: ExprPathInner)
│ │ │ └── item #0 (kind: PathSegmentSimple)
│ │ │ └── ident (kind: TerminalIdentifier)
│ │ │ ├── leading_trivia (kind: Trivia)
│ │ │ │ └── child #0 (kind: TokenNewline).
│ │ │ ├── token (kind: TokenIdentifier): 'inline_item_macro'
│ │ │ └── trailing_trivia (kind: Trivia) []
│ │ ├── bang (kind: TerminalNot)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenNot): '!'
│ │ │ └── trailing_trivia (kind: Trivia) []
│ │ ├── arguments (kind: TokenTreeNode)
│ │ │ └── subtree (kind: ParenthesizedTokenTree)
│ │ │ ├── lparen (kind: TerminalLParen)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenLParen): '('
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ ├── tokens (kind: TokenList)
│ │ │ │ ├── child #0 (kind: TokenTreeLeaf)
│ │ │ │ │ └── leaf (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'x'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── child #1 (kind: TokenTreeLeaf)
│ │ │ │ │ └── leaf (kind: TerminalComma)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ ├── child #2 (kind: TokenTreeLeaf)
│ │ │ │ │ └── leaf (kind: TerminalIdentifier)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenIdentifier): 'y'
│ │ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ │ ├── child #3 (kind: TokenTreeLeaf)
│ │ │ │ │ └── leaf (kind: TerminalComma)
│ │ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ │ ├── token (kind: TokenComma): ','
│ │ │ │ │ └── trailing_trivia (kind: Trivia)
│ │ │ │ │ └── child #0 (kind: TokenWhitespace).
│ │ │ │ └── child #4 (kind: TokenTreeLeaf)
│ │ │ │ └── leaf (kind: TerminalIdentifier)
│ │ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ │ ├── token (kind: TokenIdentifier): 'z'
│ │ │ │ └── trailing_trivia (kind: Trivia) []
│ │ │ └── rparen (kind: TerminalRParen)
│ │ │ ├── leading_trivia (kind: Trivia) []
│ │ │ ├── token (kind: TokenRParen): ')'
│ │ │ └── trailing_trivia (kind: Trivia) []
│ │ └── semicolon (kind: TerminalSemicolon)
│ │ ├── leading_trivia (kind: Trivia) []
│ │ ├── token (kind: TokenSemicolon): ';'
│ │ └── trailing_trivia (kind: Trivia)
│ │ └── child #0 (kind: TokenNewline).
│ └── child #12: Missing []
└── eof (kind: TerminalEndOfFile)
├── leading_trivia (kind: Trivia)
│ └── child #0 (kind: TriviumSkippedNode)
│ └── node (kind: AttributeList)
│ └── child #0 (kind: Attribute)
│ ├── hash (kind: TerminalHash)
│ │ ├── leading_trivia (kind: Trivia)
│ │ │ └── child #0 (kind: TokenNewline).
│ │ ├── token (kind: TokenHash): '#'
│ │ └── trailing_trivia (kind: Trivia) []
│ ├── lbrack (kind: TerminalLBrack)
│ │ ├── leading_trivia (kind: Trivia) []
│ │ ├── token (kind: TokenLBrack): '['
│ │ └── trailing_trivia (kind: Trivia) []
│ ├── attr (kind: ExprPath)
│ │ ├── dollar (kind: OptionTerminalDollarEmpty) []
│ │ └── segments (kind: ExprPathInner)
│ │ └── item #0 (kind: PathSegmentSimple)
│ │ └── ident (kind: TerminalIdentifier)
│ │ ├── leading_trivia (kind: Trivia) []
│ │ ├── token (kind: TokenIdentifier): 'attribute_without_item'
│ │ └── trailing_trivia (kind: Trivia) []
│ ├── arguments (kind: OptionArgListParenthesizedEmpty) []
│ └── rbrack (kind: TerminalRBrack)
│ ├── leading_trivia (kind: Trivia) []
│ ├── token (kind: TokenRBrack): ']'
│ └── trailing_trivia (kind: Trivia)
│ └── child #0 (kind: TokenNewline).
├── token (kind: TokenEndOfFile).
└── trailing_trivia (kind: Trivia) []