---
source: full-moon/tests/pass_cases.rs
expression: ast.nodes()
input_file: full-moon/tests/roblox_cases/pass/shorthand_array_type
---
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: 10
              line: 1
              character: 11
            token_type:
              type: Identifier
              identifier: Array
          trailing_trivia: []
        generics:
          arrows:
            tokens:
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 10
                    line: 1
                    character: 11
                  end_position:
                    bytes: 11
                    line: 1
                    character: 12
                  token_type:
                    type: Symbol
                    symbol: "<"
                trailing_trivia: []
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 12
                    line: 1
                    character: 13
                  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: " "
          generics:
            pairs:
              - End:
                  parameter:
                    Name:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 11
                          line: 1
                          character: 12
                        end_position:
                          bytes: 12
                          line: 1
                          character: 13
                        token_type:
                          type: Identifier
                          identifier: T
                      trailing_trivia: []
                  default: ~
        equal_token:
          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: " "
        declare_as:
          Array:
            braces:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 16
                      line: 1
                      character: 17
                    end_position:
                      bytes: 17
                      line: 1
                      character: 18
                    token_type:
                      type: Symbol
                      symbol: "{"
                  trailing_trivia:
                    - start_position:
                        bytes: 17
                        line: 1
                        character: 18
                      end_position:
                        bytes: 18
                        line: 1
                        character: 19
                      token_type:
                        type: Whitespace
                        characters: " "
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 20
                      line: 1
                      character: 21
                    end_position:
                      bytes: 21
                      line: 1
                      character: 22
                    token_type:
                      type: Symbol
                      symbol: "}"
                  trailing_trivia:
                    - start_position:
                        bytes: 21
                        line: 1
                        character: 22
                      end_position:
                        bytes: 22
                        line: 1
                        character: 22
                      token_type:
                        type: Whitespace
                        characters: "\n"
            type_info:
              Basic:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 18
                    line: 1
                    character: 19
                  end_position:
                    bytes: 19
                    line: 1
                    character: 20
                  token_type:
                    type: Identifier
                    identifier: T
                trailing_trivia:
                  - start_position:
                      bytes: 19
                      line: 1
                      character: 20
                    end_position:
                      bytes: 20
                      line: 1
                      character: 21
                    token_type:
                      type: Whitespace
                      characters: " "
    - ~
  - - TypeDeclaration:
        type_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 22
              line: 2
              character: 1
            end_position:
              bytes: 26
              line: 2
              character: 5
            token_type:
              type: Identifier
              identifier: type
          trailing_trivia:
            - start_position:
                bytes: 26
                line: 2
                character: 5
              end_position:
                bytes: 27
                line: 2
                character: 6
              token_type:
                type: Whitespace
                characters: " "
        base:
          leading_trivia: []
          token:
            start_position:
              bytes: 27
              line: 2
              character: 6
            end_position:
              bytes: 32
              line: 2
              character: 11
            token_type:
              type: Identifier
              identifier: Array
          trailing_trivia: []
        generics:
          arrows:
            tokens:
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 32
                    line: 2
                    character: 11
                  end_position:
                    bytes: 33
                    line: 2
                    character: 12
                  token_type:
                    type: Symbol
                    symbol: "<"
                trailing_trivia: []
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 34
                    line: 2
                    character: 13
                  end_position:
                    bytes: 35
                    line: 2
                    character: 14
                  token_type:
                    type: Symbol
                    symbol: ">"
                trailing_trivia:
                  - start_position:
                      bytes: 35
                      line: 2
                      character: 14
                    end_position:
                      bytes: 36
                      line: 2
                      character: 15
                    token_type:
                      type: Whitespace
                      characters: " "
          generics:
            pairs:
              - End:
                  parameter:
                    Name:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 33
                          line: 2
                          character: 12
                        end_position:
                          bytes: 34
                          line: 2
                          character: 13
                        token_type:
                          type: Identifier
                          identifier: T
                      trailing_trivia: []
                  default: ~
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 36
              line: 2
              character: 15
            end_position:
              bytes: 37
              line: 2
              character: 16
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 37
                line: 2
                character: 16
              end_position:
                bytes: 38
                line: 2
                character: 17
              token_type:
                type: Whitespace
                characters: " "
        declare_as:
          Table:
            braces:
              tokens:
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 38
                      line: 2
                      character: 17
                    end_position:
                      bytes: 39
                      line: 2
                      character: 18
                    token_type:
                      type: Symbol
                      symbol: "{"
                  trailing_trivia:
                    - start_position:
                        bytes: 39
                        line: 2
                        character: 18
                      end_position:
                        bytes: 40
                        line: 2
                        character: 19
                      token_type:
                        type: Whitespace
                        characters: " "
                - leading_trivia: []
                  token:
                    start_position:
                      bytes: 52
                      line: 2
                      character: 31
                    end_position:
                      bytes: 53
                      line: 2
                      character: 32
                    token_type:
                      type: Symbol
                      symbol: "}"
                  trailing_trivia: []
            fields:
              pairs:
                - End:
                    key:
                      IndexSignature:
                        brackets:
                          tokens:
                            - leading_trivia: []
                              token:
                                start_position:
                                  bytes: 40
                                  line: 2
                                  character: 19
                                end_position:
                                  bytes: 41
                                  line: 2
                                  character: 20
                                token_type:
                                  type: Symbol
                                  symbol: "["
                              trailing_trivia: []
                            - leading_trivia: []
                              token:
                                start_position:
                                  bytes: 47
                                  line: 2
                                  character: 26
                                end_position:
                                  bytes: 48
                                  line: 2
                                  character: 27
                                token_type:
                                  type: Symbol
                                  symbol: "]"
                              trailing_trivia: []
                        inner:
                          Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 41
                                line: 2
                                character: 20
                              end_position:
                                bytes: 47
                                line: 2
                                character: 26
                              token_type:
                                type: Identifier
                                identifier: number
                            trailing_trivia: []
                    colon:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 48
                          line: 2
                          character: 27
                        end_position:
                          bytes: 49
                          line: 2
                          character: 28
                        token_type:
                          type: Symbol
                          symbol: ":"
                      trailing_trivia:
                        - start_position:
                            bytes: 49
                            line: 2
                            character: 28
                          end_position:
                            bytes: 50
                            line: 2
                            character: 29
                          token_type:
                            type: Whitespace
                            characters: " "
                    value:
                      Basic:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 50
                            line: 2
                            character: 29
                          end_position:
                            bytes: 51
                            line: 2
                            character: 30
                          token_type:
                            type: Identifier
                            identifier: T
                        trailing_trivia:
                          - start_position:
                              bytes: 51
                              line: 2
                              character: 30
                            end_position:
                              bytes: 52
                              line: 2
                              character: 31
                            token_type:
                              type: Whitespace
                              characters: " "
    - ~
