---
source: full-moon/tests/fail_cases.rs
expression: result.ast()
---
nodes:
  stmts:
    - - TypeDeclaration:
          type_token:
            leading_trivia: []
            token:
              start_position:
                bytes: 0
                line: 1
                character: 1
              end_position:
                bytes: 4
                line: 1
                character: 5
              token_type:
                type: Identifier
                identifier: type
            trailing_trivia:
              - start_position:
                  bytes: 4
                  line: 1
                  character: 5
                end_position:
                  bytes: 5
                  line: 1
                  character: 6
                token_type:
                  type: Whitespace
                  characters: " "
          base:
            leading_trivia: []
            token:
              start_position:
                bytes: 5
                line: 1
                character: 6
              end_position:
                bytes: 8
                line: 1
                character: 9
              token_type:
                type: Identifier
                identifier: Foo
            trailing_trivia: []
          generics:
            arrows:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 8
                      line: 1
                      character: 9
                    end_position:
                      bytes: 9
                      line: 1
                      character: 10
                    token_type:
                      type: Symbol
                      symbol: "<"
                  trailing_trivia: []
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 22
                      line: 1
                      character: 23
                    end_position:
                      bytes: 23
                      line: 1
                      character: 24
                    token_type:
                      type: Symbol
                      symbol: ">"
                  trailing_trivia:
                    - start_position:
                        bytes: 23
                        line: 1
                        character: 24
                      end_position:
                        bytes: 24
                        line: 1
                        character: 25
                      token_type:
                        type: Whitespace
                        characters: " "
            generics:
              pairs:
                - End:
                    parameter:
                      Variadic:
                        name:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 9
                              line: 1
                              character: 10
                            end_position:
                              bytes: 10
                              line: 1
                              character: 11
                            token_type:
                              type: Identifier
                              identifier: T
                          trailing_trivia: []
                        ellipsis:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 10
                              line: 1
                              character: 11
                            end_position:
                              bytes: 13
                              line: 1
                              character: 14
                            token_type:
                              type: Symbol
                              symbol: "..."
                          trailing_trivia:
                            - start_position:
                                bytes: 13
                                line: 1
                                character: 14
                              end_position:
                                bytes: 14
                                line: 1
                                character: 15
                              token_type:
                                type: Whitespace
                                characters: " "
                    default:
                      - leading_trivia: []
                        token:
                          start_position:
                            bytes: 14
                            line: 1
                            character: 15
                          end_position:
                            bytes: 15
                            line: 1
                            character: 16
                          token_type:
                            type: Symbol
                            symbol: "="
                        trailing_trivia:
                          - start_position:
                              bytes: 15
                              line: 1
                              character: 16
                            end_position:
                              bytes: 16
                              line: 1
                              character: 17
                            token_type:
                              type: Whitespace
                              characters: " "
                      - Basic:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 16
                              line: 1
                              character: 17
                            end_position:
                              bytes: 22
                              line: 1
                              character: 23
                            token_type:
                              type: Identifier
                              identifier: string
                          trailing_trivia: []
          equal_token:
            leading_trivia: []
            token:
              start_position:
                bytes: 24
                line: 1
                character: 25
              end_position:
                bytes: 25
                line: 1
                character: 26
              token_type:
                type: Symbol
                symbol: "="
            trailing_trivia:
              - start_position:
                  bytes: 25
                  line: 1
                  character: 26
                end_position:
                  bytes: 26
                  line: 1
                  character: 27
                token_type:
                  type: Whitespace
                  characters: " "
          declare_as:
            Basic:
              leading_trivia: []
              token:
                start_position:
                  bytes: 26
                  line: 1
                  character: 27
                end_position:
                  bytes: 29
                  line: 1
                  character: 30
                token_type:
                  type: Symbol
                  symbol: nil
              trailing_trivia:
                - start_position:
                    bytes: 29
                    line: 1
                    character: 30
                  end_position:
                    bytes: 30
                    line: 1
                    character: 30
                  token_type:
                    type: Whitespace
                    characters: "\n"
      - ~
eof:
  leading_trivia: []
  token:
    start_position:
      bytes: 30
      line: 2
      character: 1
    end_position:
      bytes: 30
      line: 2
      character: 1
    token_type:
      type: Eof
  trailing_trivia: []

