Repository: tree-sitter/tree-sitter-java (language: python)

Issue:
Bug: Missing `@type` hightlight
Missing highlight when:
 -  accessing static methods
 -  referencing methods 
 -  type parameters
        
![image](https://user-images.githubusercontent.com/32269291/148684924-608933e2-a8f8-470d-a893-068cbb748ed9.png)
![image](https://user-images.githubusercontent.com/32269291/148686168-6d6df453-bbf3-4ff2-9c48-bbc8e6b97904.png)



Discussion / hints:

Fix patch:
diff --git a/grammar.js b/grammar.js
index c52236c..9524930 100644
--- a/grammar.js
+++ b/grammar.js
@@ -113,9 +113,9 @@ module.exports = grammar({
 
     decimal_floating_point_literal: $ => token(choice(
       seq(DIGITS, '.', optional(DIGITS), optional(seq((/[eE]/), optional(choice('-', '+')), DIGITS)), optional(/[fFdD]/)),
-      seq('.', DIGITS, optional(seq((/[eE]/), optional(choice('-','+')), DIGITS)), optional(/[fFdD]/)),
-      seq(DIGITS, /[eEpP]/, optional(choice('-','+')), DIGITS, optional(/[fFdD]/)),
-      seq(DIGITS, optional(seq((/[eE]/), optional(choice('-','+')), DIGITS)), (/[fFdD]/))
+      seq('.', DIGITS, optional(seq((/[eE]/), optional(choice('-', '+')), DIGITS)), optional(/[fFdD]/)),
+      seq(DIGITS, /[eEpP]/, optional(choice('-', '+')), DIGITS, optional(/[fFdD]/)),
+      seq(DIGITS, optional(seq((/[eE]/), optional(choice('-', '+')), DIGITS)), (/[fFdD]/))
     )),
 
     hex_floating_point_literal: $ => token(seq(
@@ -126,7 +126,7 @@ module.exports = grammar({
       ),
       optional(seq(
         /[eEpP]/,
-        optional(choice('-','+')),
+        optional(choice('-', '+')),
         DIGITS,
         optional(/[fFdD]/)
       ))
@@ -166,7 +166,7 @@ module.exports = grammar({
       $.primary_expression,
       $.unary_expression,
       $.cast_expression,
-      prec(PREC.SWITCH_EXP, $.switch_expression), 
+      prec(PREC.SWITCH_EXP, $.switch_expression),
     ),
 
     cast_expression: $ => prec(PREC.CAST, seq(
@@ -189,32 +189,32 @@ module.exports = grammar({
 
     binary_expression: $ => choice(
       ...[
-      ['>', PREC.REL],
-      ['<', PREC.REL],
-      ['>=', PREC.REL],
-      ['<=', PREC.REL],
-      ['==', PREC.EQUALITY],
-      ['!=', PREC.EQUALITY],
-      ['&&', PREC.AND],
-      ['||', PREC.OR],
-      ['+', PREC.ADD],
-      ['-', PREC.ADD],
-      ['*', PREC.MULT],
-      ['/', PREC.MULT],
-      ['&', PREC.BIT_AND],
-      ['|', PREC.BIT_OR],
-      ['^', PREC.BIT_XOR],
-      ['%', PREC.MULT],
-      ['<<', PREC.SHIFT],
-      ['>>', PREC.SHIFT],
-      ['>>>', PREC.SHIFT],
-    ].map(([operator, precedence]) =>
-      prec.left(precedence, seq(
-        field('left', $.expression),
-        field('operator', operator),
-        field('right', $.expression)
-      ))
-    )),
+        ['>', PREC.REL],
+        ['<', PREC.REL],
+        ['>=', PREC.REL],
+        ['<=', PREC.REL],
+        ['==', PREC.EQUALITY],
+        ['!=', PREC.EQUALITY],
+        ['&&', PREC.AND],
+        ['||', PREC.OR],
+        ['+', PREC.ADD],
+        ['-', PREC.ADD],
+        ['*', PREC.MULT],
+        ['/', PREC.MULT],
+        ['&', PREC.BIT_AND],
+        ['|', PREC.BIT_OR],
+        ['^', PREC.BIT_XOR],
+        ['%', PREC.MULT],
+        ['<<', PREC.SHIFT],
+        ['>>', PREC.SHIFT],
+        ['>>>', PREC.SHIFT],
+      ].map(([operator, precedence]) =>
+        prec.left(precedence, seq(
+          field('left', $.expression),
+          field('operator', operator),
+          field('right', $.expression)
+        ))
+      )),
 
     instanceof_expression: $ => prec(PREC.REL, seq(
       field('left', $.expression),
@@ -386,22 +386,22 @@ module.exports = grammar({
     switch_block: $ => seq(
       '{',
       choice(
-        repeat($.switch_block_statement_group), 
+        repeat($.switch_block_statement_group),
         repeat($.switch_rule)
       ),
       '}'
     ),
 
-    switch_block_statement_group: $ => prec.left (seq(
-        repeat1(seq($.switch_label, ':')),
-        repeat($.statement),
+    switch_block_statement_group: $ => prec.left(seq(
+      repeat1(seq($.switch_label, ':')),
+      repeat($.statement),
     )),
 
     switch_rule: $ => seq(
       $.switch_label,
       '->',
       choice($.expression_statement, $.throw_statement, $.block)
-     ),
+    ),
 
     switch_label: $ => choice(
       seq('case', commaSep1($.expression)),
@@ -736,7 +736,7 @@ module.exports = grammar({
 
     type_parameter: $ => seq(
       repeat($._annotation),
-      $.identifier,
+      alias($.identifier, $.type_identifier),
       optional($.type_bound)
     ),
 
@@ -843,7 +843,7 @@ module.exports = grammar({
       'record',
       field('name', $.identifier),
       field('parameters', $.formal_parameters),
-      field('body', $.class_body) 
+      field('body', $.class_body)
     ),
 
     annotation_type_declaration: $ => seq(
@@ -1092,7 +1092,7 @@ module.exports = grammar({
   }
 });
 
-function sep1 (rule, separator) {
+function sep1(rule, separator) {
   return seq(rule, repeat(seq(separator, rule)));
 }
 
diff --git a/queries/highlights.scm b/queries/highlights.scm
index e7d793d..fabfa07 100644
--- a/queries/highlights.scm
+++ b/queries/highlights.scm
@@ -17,6 +17,8 @@
 
 ; Types
 
+(type_identifier) @type
+
 (interface_declaration
   name: (identifier) @type)
 (class_declaration
@@ -30,12 +32,16 @@
 ((scoped_identifier
   scope: (identifier) @type)
  (#match? @type "^[A-Z]"))
+((method_invocation
+  object: (identifier) @type)
+ (#match? @type "^[A-Z]"))
+((method_reference
+  . (identifier) @type)
+ (#match? @type "^[A-Z]"))
 
 (constructor_declaration
   name: (identifier) @type)
 
-(type_identifier) @type
-
 [
   (boolean_type)
   (integral_type)
diff --git a/src/grammar.json b/src/grammar.json
index c9c6931..bb19a35 100644
--- a/src/grammar.json
+++ b/src/grammar.json
@@ -5063,8 +5063,13 @@
           }
         },
         {
-          "type": "SYMBOL",
-          "name": "identifier"
+          "type": "ALIAS",
+          "content": {
+            "type": "SYMBOL",
+            "name": "identifier"
+          },
+          "named": true,
+          "value": "type_identifier"
         },
         {
           "type": "CHOICE",
diff --git a/src/node-types.json b/src/node-types.json
index 215e7c1..487b826 100644
--- a/src/node-types.json
+++ b/src/node-types.json
@@ -3295,15 +3295,15 @@
           "named": true
         },
         {
-          "type": "identifier",
+          "type": "marker_annotation",
           "named": true
         },
         {
-          "type": "marker_annotation",
+          "type": "type_bound",
           "named": true
         },
         {
-          "type": "type_bound",
+          "type": "type_identifier",
           "named": true
         }
       ]
diff --git a/src/parser.c b/src/parser.c
index f9ce3c8..7b3193d 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -14,7 +14,7 @@
 #define EXTERNAL_TOKEN_COUNT 0
 #define FIELD_COUNT 30
 #define MAX_ALIAS_SEQUENCE_LENGTH 11
-#define PRODUCTION_ID_COUNT 171
+#define PRODUCTION_ID_COUNT 172
 
 enum {
   sym_identifier = 1,
@@ -298,7 +298,7 @@ enum {
   alias_sym_type_identifier = 279,
 };
 
-static const char *ts_symbol_names[] = {
+static const char * const ts_symbol_names[] = {
   [ts_builtin_sym_end] = "end",
   [sym_identifier] = "identifier",
   [sym_decimal_integer_literal] = "decimal_integer_literal",
@@ -581,7 +581,7 @@ static const char *ts_symbol_names[] = {
   [alias_sym_type_identifier] = "type_identifier",
 };
 
-static TSSymbol ts_symbol_map[] = {
+static const TSSymbol ts_symbol_map[] = {
   [ts_builtin_sym_end] = ts_builtin_sym_end,
   [sym_identifier] = sym_identifier,
   [sym_decimal_integer_literal] = sym_decimal_integer_literal,
@@ -2027,7 +2027,7 @@ enum {
   field_value = 30,
 };
 
-static const char *ts_field_names[] = {
+static const char * const ts_field_names[] = {
   [0] = NULL,
   [field_alternative] = "alternative",
   [field_arguments] = "arguments",
@@ -2124,103 +2124,103 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
   [67] = {.index = 91, .length = 2},
   [68] = {.index = 93, .length = 3},
   [70] = {.index = 96, .length = 3},
-  [71] = {.index = 99, .length = 2},
-  [72] = {.index = 101, .length = 4},
-  [73] = {.index = 105, .length = 4},
-  [74] = {.index = 109, .length = 5},
-  [75] = {.index = 114, .length = 6},
-  [76] = {.index = 120, .length = 4},
-  [77] = {.index = 124, .length = 4},
-  [78] = {.index = 128, .length = 4},
-  [79] = {.index = 132, .length = 2},
-  [80] = {.index = 134, .length = 3},
-  [81] = {.index = 137, .length = 1},
-  [82] = {.index = 138, .length = 2},
-  [83] = {.index = 140, .length = 2},
-  [84] = {.index = 142, .length = 3},
-  [85] = {.index = 145, .length = 2},
+  [72] = {.index = 99, .length = 2},
+  [73] = {.index = 101, .length = 4},
+  [74] = {.index = 105, .length = 4},
+  [75] = {.index = 109, .length = 5},
+  [76] = {.index = 114, .length = 6},
+  [77] = {.index = 120, .length = 4},
+  [78] = {.index = 124, .length = 4},
+  [79] = {.index = 128, .length = 4},
+  [80] = {.index = 132, .length = 2},
+  [81] = {.index = 134, .length = 3},
+  [82] = {.index = 137, .length = 1},
+  [83] = {.index = 138, .length = 2},
+  [84] = {.index = 140, .length = 2},
+  [85] = {.index = 142, .length = 3},
   [86] = {.index = 145, .length = 2},
-  [87] = {.index = 147, .length = 4},
+  [87] = {.index = 145, .length = 2},
   [88] = {.index = 147, .length = 4},
-  [89] = {.index = 151, .length = 3},
-  [90] = {.index = 154, .length = 3},
-  [91] = {.index = 157, .length = 3},
-  [92] = {.index = 160, .length = 3},
-  [93] = {.index = 163, .length = 2},
-  [94] = {.index = 165, .length = 2},
+  [89] = {.index = 147, .length = 4},
+  [90] = {.index = 151, .length = 3},
+  [91] = {.index = 154, .length = 3},
+  [92] = {.index = 157, .length = 3},
+  [93] = {.index = 160, .length = 3},
+  [94] = {.index = 163, .length = 2},
   [95] = {.index = 165, .length = 2},
-  [96] = {.index = 167, .length = 4},
-  [97] = {.index = 171, .length = 5},
-  [98] = {.index = 176, .length = 6},
-  [99] = {.index = 182, .length = 3},
-  [100] = {.index = 185, .length = 5},
-  [101] = {.index = 190, .length = 4},
-  [102] = {.index = 99, .length = 2},
-  [103] = {.index = 194, .length = 5},
-  [104] = {.index = 199, .length = 4},
-  [105] = {.index = 203, .length = 2},
-  [106] = {.index = 205, .length = 1},
-  [107] = {.index = 206, .length = 2},
-  [108] = {.index = 208, .length = 2},
-  [109] = {.index = 210, .length = 3},
-  [110] = {.index = 213, .length = 3},
+  [96] = {.index = 165, .length = 2},
+  [97] = {.index = 167, .length = 4},
+  [98] = {.index = 171, .length = 5},
+  [99] = {.index = 176, .length = 6},
+  [100] = {.index = 182, .length = 3},
+  [101] = {.index = 185, .length = 5},
+  [102] = {.index = 190, .length = 4},
+  [103] = {.index = 99, .length = 2},
+  [104] = {.index = 194, .length = 5},
+  [105] = {.index = 199, .length = 4},
+  [106] = {.index = 203, .length = 2},
+  [107] = {.index = 205, .length = 1},
+  [108] = {.index = 206, .length = 2},
+  [109] = {.index = 208, .length = 2},
+  [110] = {.index = 210, .length = 3},
   [111] = {.index = 213, .length = 3},
-  [112] = {.index = 216, .length = 4},
-  [113] = {.index = 220, .length = 4},
-  [114] = {.index = 224, .length = 4},
-  [115] = {.index = 228, .length = 3},
-  [116] = {.index = 231, .length = 3},
-  [117] = {.index = 234, .length = 4},
-  [118] = {.index = 238, .length = 5},
-  [119] = {.index = 243, .length = 3},
+  [112] = {.index = 213, .length = 3},
+  [113] = {.index = 216, .length = 4},
+  [114] = {.index = 220, .length = 4},
+  [115] = {.index = 224, .length = 4},
+  [116] = {.index = 228, .length = 3},
+  [117] = {.index = 231, .length = 3},
+  [118] = {.index = 234, .length = 4},
+  [119] = {.index = 238, .length = 5},
   [120] = {.index = 243, .length = 3},
-  [121] = {.index = 246, .length = 4},
-  [122] = {.index = 250, .length = 1},
-  [123] = {.index = 251, .length = 2},
-  [124] = {.index = 253, .length = 2},
-  [125] = {.index = 255, .length = 1},
-  [126] = {.index = 256, .length = 2},
-  [127] = {.index = 258, .length = 2},
-  [128] = {.index = 260, .length = 2},
-  [129] = {.index = 262, .length = 3},
-  [130] = {.index = 265, .length = 3},
-  [132] = {.index = 268, .length = 3},
-  [133] = {.index = 271, .length = 4},
+  [121] = {.index = 243, .length = 3},
+  [122] = {.index = 246, .length = 4},
+  [123] = {.index = 250, .length = 1},
+  [124] = {.index = 251, .length = 2},
+  [125] = {.index = 253, .length = 2},
+  [126] = {.index = 255, .length = 1},
+  [127] = {.index = 256, .length = 2},
+  [128] = {.index = 258, .length = 2},
+  [129] = {.index = 260, .length = 2},
+  [130] = {.index = 262, .length = 3},
+  [131] = {.index = 265, .length = 3},
+  [133] = {.index = 268, .length = 3},
   [134] = {.index = 271, .length = 4},
-  [135] = {.index = 275, .length = 5},
-  [136] = {.index = 280, .length = 3},
-  [137] = {.index = 283, .length = 2},
-  [138] = {.index = 285, .length = 3},
-  [139] = {.index = 288, .length = 3},
-  [140] = {.index = 291, .length = 3},
-  [141] = {.index = 294, .length = 3},
-  [142] = {.index = 297, .length = 3},
-  [143] = {.index = 300, .length = 5},
-  [144] = {.index = 305, .length = 4},
-  [145] = {.index = 309, .length = 4},
-  [148] = {.index = 313, .length = 2},
-  [149] = {.index = 315, .length = 3},
-  [150] = {.index = 318, .length = 4},
-  [151] = {.index = 322, .length = 4},
-  [152] = {.index = 326, .length = 4},
-  [153] = {.index = 330, .length = 4},
-  [154] = {.index = 334, .length = 4},
-  [155] = {.index = 338, .length = 5},
-  [156] = {.index = 343, .length = 5},
-  [157] = {.index = 348, .length = 2},
-  [158] = {.index = 350, .length = 1},
-  [159] = {.index = 351, .length = 3},
-  [160] = {.index = 354, .length = 3},
-  [161] = {.index = 357, .length = 3},
-  [162] = {.index = 360, .length = 5},
-  [163] = {.index = 365, .length = 5},
-  [164] = {.index = 370, .length = 5},
-  [165] = {.index = 375, .length = 3},
-  [166] = {.index = 378, .length = 3},
-  [167] = {.index = 381, .length = 4},
-  [168] = {.index = 385, .length = 4},
-  [169] = {.index = 389, .length = 6},
-  [170] = {.index = 395, .length = 4},
+  [135] = {.index = 271, .length = 4},
+  [136] = {.index = 275, .length = 5},
+  [137] = {.index = 280, .length = 3},
+  [138] = {.index = 283, .length = 2},
+  [139] = {.index = 285, .length = 3},
+  [140] = {.index = 288, .length = 3},
+  [141] = {.index = 291, .length = 3},
+  [142] = {.index = 294, .length = 3},
+  [143] = {.index = 297, .length = 3},
+  [144] = {.index = 300, .length = 5},
+  [145] = {.index = 305, .length = 4},
+  [146] = {.index = 309, .length = 4},
+  [149] = {.index = 313, .length = 2},
+  [150] = {.index = 315, .length = 3},
+  [151] = {.index = 318, .length = 4},
+  [152] = {.index = 322, .length = 4},
+  [153] = {.index = 326, .length = 4},
+  [154] = {.index = 330, .length = 4},
+  [155] = {.index = 334, .length = 4},
+  [156] = {.index = 338, .length = 5},
+  [157] = {.index = 343, .length = 5},
+  [158] = {.index = 348, .length = 2},
+  [159] = {.index = 350, .length = 1},
+  [160] = {.index = 351, .length = 3},
+  [161] = {.index = 354, .length = 3},
+  [162] = {.index = 357, .length = 3},
+  [163] = {.index = 360, .length = 5},
+  [164] = {.index = 365, .length = 5},
+  [165] = {.index = 370, .length = 5},
+  [166] = {.index = 375, .length = 3},
+  [167] = {.index = 378, .length = 3},
+  [168] = {.index = 381, .length = 4},
+  [169] = {.index = 385, .length = 4},
+  [170] = {.index = 389, .length = 6},
+  [171] = {.index = 395, .length = 4},
 };
 
 static const TSFieldMapEntry ts_field_map_entries[] = {
@@ -2761,7 +2761,7 @@ static const TSFieldMapEntry ts_field_map_entries[] = {
     {field_value, 6, .inherited = true},
 };
 
-static TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
+static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
   [0] = {0},
   [1] = {
     [0] = sym_identifier,
@@ -2837,41 +2837,44 @@ static TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGT
   [69] = {
     [3] = alias_sym_type_identifier,
   },
-  [85] = {
+  [71] = {
+    [1] = alias_sym_type_identifier,
+  },
+  [86] = {
     [4] = sym_identifier,
   },
-  [87] = {
+  [88] = {
     [3] = sym_identifier,
   },
-  [94] = {
+  [95] = {
     [3] = sym_identifier,
   },
-  [102] = {
+  [103] = {
     [0] = sym_identifier,
   },
-  [110] = {
+  [111] = {
     [4] = sym_identifier,
   },
-  [119] = {
+  [120] = {
     [0] = sym_identifier,
   },
-  [131] = {
+  [132] = {
     [1] = sym_identifier,
     [2] = sym_identifier,
   },
-  [133] = {
+  [134] = {
     [5] = sym_identifier,
   },
-  [146] = {
+  [147] = {
     [1] = sym_identifier,
     [3] = sym_identifier,
   },
-  [147] = {
+  [148] = {
     [3] = sym_identifier,
   },
 };
 
-static uint16_t ts_non_terminal_alias_map[] = {
+static const uint16_t ts_non_terminal_alias_map[] = {
   0,
 };
 
@@ -6234,7 +6237,7 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) {
   }
 }
 
-static TSLexMode ts_lex_modes[STATE_COUNT] = {
+static const TSLexMode ts_lex_modes[STATE_COUNT] = {
   [0] = {.lex_state = 0},
   [1] = {.lex_state = 44},
   [2] = {.lex_state = 44},
@@ -7276,7 +7279,7 @@ static TSLexMode ts_lex_modes[STATE_COUNT] = {
   [1038] = {.lex_state = 0},
 };
 
-static uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
+static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
   [0] = {
     [ts_builtin_sym_end] = ACTIONS(1),
     [sym_identifier] = ACTIONS(1),
@@ -30435,7 +30438,7 @@ static uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
   },
 };
 
-static uint16_t ts_small_parse_table[] = {
+static const uint16_t ts_small_parse_table[] = {
   [0] = 27,
     ACTIONS(3), 1,
       sym_comment,
@@ -46660,7 +46663,7 @@ static uint16_t ts_small_parse_table[] = {
   [20444] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2192), 2,
+    ACTIONS(2513), 2,
       anon_sym_GT,
       anon_sym_COMMA,
   [20452] = 3,
@@ -46673,9 +46676,9 @@ static uint16_t ts_small_parse_table[] = {
   [20462] = 3,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2513), 1,
-      anon_sym_DOT,
     ACTIONS(2515), 1,
+      anon_sym_DOT,
+    ACTIONS(2517), 1,
       anon_sym_SEMI,
   [20472] = 3,
     ACTIONS(3), 1,
@@ -46687,20 +46690,20 @@ static uint16_t ts_small_parse_table[] = {
   [20482] = 3,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2517), 1,
-      anon_sym_DASH_GT,
     ACTIONS(2519), 1,
+      anon_sym_DASH_GT,
+    ACTIONS(2521), 1,
       anon_sym_COLON,
   [20492] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2521), 2,
+    ACTIONS(2523), 2,
       anon_sym_DASH_GT,
       anon_sym_COLON,
   [20500] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2523), 2,
+    ACTIONS(2525), 2,
       anon_sym_LBRACE,
       anon_sym_throws,
   [20508] = 3,
@@ -46720,7 +46723,7 @@ static uint16_t ts_small_parse_table[] = {
   [20528] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2525), 2,
+    ACTIONS(2527), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
   [20536] = 3,
@@ -46733,9 +46736,9 @@ static uint16_t ts_small_parse_table[] = {
   [20546] = 3,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2527), 1,
-      anon_sym_DOT,
     ACTIONS(2529), 1,
+      anon_sym_DOT,
+    ACTIONS(2531), 1,
       anon_sym_SEMI,
   [20556] = 3,
     ACTIONS(3), 1,
@@ -46747,7 +46750,7 @@ static uint16_t ts_small_parse_table[] = {
   [20566] = 3,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2531), 1,
+    ACTIONS(2533), 1,
       anon_sym_LBRACE,
     STATE(113), 1,
       sym_annotation_type_body,
@@ -46767,7 +46770,7 @@ static uint16_t ts_small_parse_table[] = {
   [20594] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2533), 2,
+    ACTIONS(2535), 2,
       anon_sym_LBRACE,
       anon_sym_implements,
   [20602] = 3,
@@ -46799,7 +46802,7 @@ static uint16_t ts_small_parse_table[] = {
   [20638] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2535), 2,
+    ACTIONS(2537), 2,
       anon_sym_GT,
       anon_sym_COMMA,
   [20646] = 2,
@@ -46824,13 +46827,13 @@ static uint16_t ts_small_parse_table[] = {
   [20672] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2537), 2,
+    ACTIONS(2539), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
   [20680] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2539), 2,
+    ACTIONS(2541), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
   [20688] = 2,
@@ -46842,26 +46845,26 @@ static uint16_t ts_small_parse_table[] = {
   [20696] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2541), 2,
+    ACTIONS(2543), 2,
       anon_sym_AMP,
       anon_sym_RPAREN,
   [20704] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2543), 2,
+    ACTIONS(2545), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
   [20712] = 3,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2545), 1,
+    ACTIONS(2547), 1,
       sym_identifier,
     STATE(881), 1,
       sym_element_value_pair,
   [20722] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2547), 2,
+    ACTIONS(2549), 2,
       anon_sym_LBRACE,
       anon_sym_SEMI,
   [20730] = 2,
@@ -46875,14 +46878,14 @@ static uint16_t ts_small_parse_table[] = {
       sym_comment,
     ACTIONS(1172), 1,
       anon_sym_DOT,
-    ACTIONS(2549), 1,
+    ACTIONS(2551), 1,
       anon_sym_SEMI,
   [20748] = 3,
     ACTIONS(3), 1,
       sym_comment,
     ACTIONS(1182), 1,
       anon_sym_DOT,
-    ACTIONS(2551), 1,
+    ACTIONS(2553), 1,
       anon_sym_SEMI,
   [20758] = 3,
     ACTIONS(3), 1,
@@ -46903,7 +46906,7 @@ static uint16_t ts_small_parse_table[] = {
       sym_comment,
     ACTIONS(1182), 1,
       anon_sym_DOT,
-    ACTIONS(2553), 1,
+    ACTIONS(2555), 1,
       anon_sym_with,
   [20788] = 3,
     ACTIONS(3), 1,
@@ -46915,7 +46918,7 @@ static uint16_t ts_small_parse_table[] = {
   [20798] = 3,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2531), 1,
+    ACTIONS(2533), 1,
       anon_sym_LBRACE,
     STATE(109), 1,
       sym_annotation_type_body,
@@ -46924,12 +46927,12 @@ static uint16_t ts_small_parse_table[] = {
       sym_comment,
     ACTIONS(1172), 1,
       anon_sym_DOT,
-    ACTIONS(2555), 1,
+    ACTIONS(2557), 1,
       anon_sym_with,
   [20818] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2557), 2,
+    ACTIONS(2559), 2,
       anon_sym_new,
       sym_identifier,
   [20826] = 3,
@@ -46977,16 +46980,16 @@ static uint16_t ts_small_parse_table[] = {
   [20886] = 3,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2559), 1,
-      anon_sym_DOT,
     ACTIONS(2561), 1,
+      anon_sym_DOT,
+    ACTIONS(2563), 1,
       anon_sym_SEMI,
   [20896] = 3,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2563), 1,
-      anon_sym_DOT,
     ACTIONS(2565), 1,
+      anon_sym_DOT,
+    ACTIONS(2567), 1,
       anon_sym_SEMI,
   [20906] = 3,
     ACTIONS(3), 1,
@@ -47019,27 +47022,27 @@ static uint16_t ts_small_parse_table[] = {
   [20946] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2567), 1,
+    ACTIONS(2569), 1,
       anon_sym_RPAREN,
   [20953] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2569), 1,
+    ACTIONS(2571), 1,
       anon_sym_LBRACE,
   [20960] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2571), 1,
+    ACTIONS(2573), 1,
       anon_sym_LPAREN,
   [20967] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2573), 1,
+    ACTIONS(2575), 1,
       anon_sym_RPAREN,
   [20974] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2575), 1,
+    ACTIONS(2577), 1,
       anon_sym_SEMI,
   [20981] = 2,
     ACTIONS(3), 1,
@@ -47049,12 +47052,12 @@ static uint16_t ts_small_parse_table[] = {
   [20988] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2577), 1,
+    ACTIONS(2579), 1,
       anon_sym_SEMI,
   [20995] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2579), 1,
+    ACTIONS(2581), 1,
       sym_identifier,
   [21002] = 2,
     ACTIONS(3), 1,
@@ -47064,12 +47067,12 @@ static uint16_t ts_small_parse_table[] = {
   [21009] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2581), 1,
+    ACTIONS(2583), 1,
       anon_sym_SEMI,
   [21016] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2583), 1,
+    ACTIONS(2585), 1,
       anon_sym_SEMI,
   [21023] = 2,
     ACTIONS(3), 1,
@@ -47079,12 +47082,12 @@ static uint16_t ts_small_parse_table[] = {
   [21030] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2585), 1,
+    ACTIONS(2587), 1,
       anon_sym_SEMI,
   [21037] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2587), 1,
+    ACTIONS(2589), 1,
       anon_sym_DASH_GT,
   [21044] = 2,
     ACTIONS(3), 1,
@@ -47094,57 +47097,57 @@ static uint16_t ts_small_parse_table[] = {
   [21051] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2589), 1,
+    ACTIONS(2591), 1,
       sym_this,
   [21058] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2591), 1,
+    ACTIONS(2593), 1,
       anon_sym_RPAREN,
   [21065] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2593), 1,
+    ACTIONS(2595), 1,
       anon_sym_DOT,
   [21072] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2595), 1,
+    ACTIONS(2597), 1,
       anon_sym_RPAREN,
   [21079] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2597), 1,
+    ACTIONS(2599), 1,
       anon_sym_DASH_GT,
   [21086] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2599), 1,
+    ACTIONS(2601), 1,
       anon_sym_EQ,
   [21093] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2601), 1,
+    ACTIONS(2603), 1,
       anon_sym_module,
   [21100] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2603), 1,
+    ACTIONS(2605), 1,
       anon_sym_LBRACE,
   [21107] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2605), 1,
+    ACTIONS(2607), 1,
       sym_identifier,
   [21114] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2607), 1,
+    ACTIONS(2609), 1,
       anon_sym_SEMI,
   [21121] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2609), 1,
+    ACTIONS(2611), 1,
       anon_sym_class,
   [21128] = 2,
     ACTIONS(3), 1,
@@ -47154,17 +47157,17 @@ static uint16_t ts_small_parse_table[] = {
   [21135] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2611), 1,
+    ACTIONS(2613), 1,
       sym_identifier,
   [21142] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2613), 1,
+    ACTIONS(2615), 1,
       sym_identifier,
   [21149] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2615), 1,
+    ACTIONS(2617), 1,
       sym_identifier,
   [21156] = 2,
     ACTIONS(3), 1,
@@ -47174,52 +47177,52 @@ static uint16_t ts_small_parse_table[] = {
   [21163] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2517), 1,
+    ACTIONS(2519), 1,
       anon_sym_DASH_GT,
   [21170] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2519), 1,
+    ACTIONS(2521), 1,
       anon_sym_COLON,
   [21177] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2617), 1,
+    ACTIONS(2619), 1,
       anon_sym_SEMI,
   [21184] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2619), 1,
+    ACTIONS(2621), 1,
       anon_sym_LBRACE,
   [21191] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2621), 1,
+    ACTIONS(2623), 1,
       anon_sym_SEMI,
   [21198] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2623), 1,
+    ACTIONS(2625), 1,
       anon_sym_SEMI,
   [21205] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2625), 1,
+    ACTIONS(2627), 1,
       anon_sym_SEMI,
   [21212] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2627), 1,
+    ACTIONS(2629), 1,
       anon_sym_SEMI,
   [21219] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2629), 1,
+    ACTIONS(2631), 1,
       anon_sym_SEMI,
   [21226] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2631), 1,
+    ACTIONS(2633), 1,
       sym_identifier,
   [21233] = 2,
     ACTIONS(3), 1,
@@ -47229,52 +47232,52 @@ static uint16_t ts_small_parse_table[] = {
   [21240] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2633), 1,
+    ACTIONS(2635), 1,
       sym_identifier,
   [21247] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2635), 1,
+    ACTIONS(2637), 1,
       anon_sym_SEMI,
   [21254] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2637), 1,
+    ACTIONS(2639), 1,
       anon_sym_EQ,
   [21261] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2639), 1,
+    ACTIONS(2641), 1,
       anon_sym_RPAREN,
   [21268] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2641), 1,
+    ACTIONS(2643), 1,
       anon_sym_DASH_GT,
   [21275] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2643), 1,
+    ACTIONS(2645), 1,
       sym_identifier,
   [21282] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2645), 1,
+    ACTIONS(2647), 1,
       anon_sym_SEMI,
   [21289] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2647), 1,
+    ACTIONS(2649), 1,
       anon_sym_SEMI,
   [21296] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2649), 1,
+    ACTIONS(2651), 1,
       anon_sym_SEMI,
   [21303] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2651), 1,
+    ACTIONS(2653), 1,
       anon_sym_while,
   [21310] = 2,
     ACTIONS(3), 1,
@@ -47289,12 +47292,12 @@ static uint16_t ts_small_parse_table[] = {
   [21324] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2653), 1,
+    ACTIONS(2655), 1,
       anon_sym_SEMI,
   [21331] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2655), 1,
+    ACTIONS(2657), 1,
       anon_sym_SEMI,
   [21338] = 2,
     ACTIONS(3), 1,
@@ -47304,12 +47307,12 @@ static uint16_t ts_small_parse_table[] = {
   [21345] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2657), 1,
+    ACTIONS(2659), 1,
       anon_sym_LBRACE,
   [21352] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2659), 1,
+    ACTIONS(2661), 1,
       anon_sym_RBRACE,
   [21359] = 2,
     ACTIONS(3), 1,
@@ -47324,32 +47327,32 @@ static uint16_t ts_small_parse_table[] = {
   [21373] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2661), 1,
+    ACTIONS(2663), 1,
       ts_builtin_sym_end,
   [21380] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2663), 1,
+    ACTIONS(2665), 1,
       sym_identifier,
   [21387] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2665), 1,
+    ACTIONS(2667), 1,
       sym_identifier,
   [21394] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2667), 1,
+    ACTIONS(2669), 1,
       sym_this,
   [21401] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2669), 1,
+    ACTIONS(2671), 1,
       sym_identifier,
   [21408] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2671), 1,
+    ACTIONS(2673), 1,
       anon_sym_SEMI,
   [21415] = 2,
     ACTIONS(3), 1,
@@ -47359,22 +47362,22 @@ static uint16_t ts_small_parse_table[] = {
   [21422] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2673), 1,
+    ACTIONS(2675), 1,
       sym_identifier,
   [21429] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2675), 1,
+    ACTIONS(2677), 1,
       anon_sym_SEMI,
   [21436] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2677), 1,
+    ACTIONS(2679), 1,
       sym_identifier,
   [21443] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2679), 1,
+    ACTIONS(2681), 1,
       anon_sym_SEMI,
   [21450] = 2,
     ACTIONS(3), 1,
@@ -47384,22 +47387,22 @@ static uint16_t ts_small_parse_table[] = {
   [21457] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2681), 1,
+    ACTIONS(2683), 1,
       anon_sym_SEMI,
   [21464] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2683), 1,
+    ACTIONS(2685), 1,
       anon_sym_SEMI,
   [21471] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2685), 1,
+    ACTIONS(2687), 1,
       anon_sym_SEMI,
   [21478] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2687), 1,
+    ACTIONS(2689), 1,
       anon_sym_LPAREN,
   [21485] = 2,
     ACTIONS(3), 1,
@@ -47409,22 +47412,22 @@ static uint16_t ts_small_parse_table[] = {
   [21492] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2689), 1,
+    ACTIONS(2691), 1,
       anon_sym_EQ,
   [21499] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2691), 1,
+    ACTIONS(2693), 1,
       sym_identifier,
   [21506] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2693), 1,
+    ACTIONS(2695), 1,
       anon_sym_LBRACE,
   [21513] = 2,
     ACTIONS(3), 1,
       sym_comment,
-    ACTIONS(2695), 1,
+    ACTIONS(2697), 1,
       anon_sym_SEMI,
   [21520] = 2,
     ACTIONS(3), 1,
@@ -47433,7 +47436,7 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_RBRACE,
 };
 
-static uint32_t ts_small_parse_table_map[] = {
+static const uint32_t ts_small_parse_table_map[] = {
   [SMALL_STATE(274)] = 0,
   [SMALL_STATE(275)] = 113,
   [SMALL_STATE(276)] = 226,
@@ -48201,7 +48204,7 @@ static uint32_t ts_small_parse_table_map[] = {
   [SMALL_STATE(1038)] = 21520,
 };
 
-static TSParseActionEntry ts_parse_actions[] = {
+static const TSParseActionEntry ts_parse_actions[] = {
   [0] = {.entry = {.count = 0, .reusable = false}},
   [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
   [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(),
@@ -48354,40 +48357,40 @@ static TSParseActionEntry ts_parse_actions[] = {
   [336] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 4, .production_id = 58),
   [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 4, .production_id = 54),
   [340] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 4, .production_id = 54),
-  [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_declaration, 5, .production_id = 90),
-  [344] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_declaration, 5, .production_id = 90),
+  [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_declaration, 5, .production_id = 91),
+  [344] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_declaration, 5, .production_id = 91),
   [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 4, .production_id = 53),
   [348] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 4, .production_id = 53),
-  [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_declaration, 5, .production_id = 92),
-  [352] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_declaration, 5, .production_id = 92),
-  [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 5, .production_id = 92),
-  [356] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 5, .production_id = 92),
-  [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 5, .production_id = 91),
-  [360] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 5, .production_id = 91),
-  [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 5, .production_id = 90),
-  [364] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 5, .production_id = 90),
+  [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_declaration, 5, .production_id = 93),
+  [352] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_declaration, 5, .production_id = 93),
+  [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 5, .production_id = 93),
+  [356] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 5, .production_id = 93),
+  [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 5, .production_id = 92),
+  [360] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 5, .production_id = 92),
+  [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 5, .production_id = 91),
+  [364] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 5, .production_id = 91),
   [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 4, .production_id = 52),
   [368] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 4, .production_id = 52),
-  [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 6, .production_id = 114),
-  [372] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 6, .production_id = 114),
-  [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch_clause, 5, .production_id = 122),
-  [376] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_catch_clause, 5, .production_id = 122),
-  [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 6, .production_id = 113),
-  [380] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 6, .production_id = 113),
-  [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 6, .production_id = 112),
-  [384] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 6, .production_id = 112),
+  [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 6, .production_id = 115),
+  [372] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 6, .production_id = 115),
+  [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch_clause, 5, .production_id = 123),
+  [376] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_catch_clause, 5, .production_id = 123),
+  [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 6, .production_id = 114),
+  [380] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 6, .production_id = 114),
+  [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 6, .production_id = 113),
+  [384] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 6, .production_id = 113),
   [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_body, 5),
   [388] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_body, 5),
-  [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 5, .production_id = 78),
-  [392] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 5, .production_id = 78),
-  [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_declaration, 5, .production_id = 84),
-  [396] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_declaration, 5, .production_id = 84),
-  [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_declaration, 6, .production_id = 115),
-  [400] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_declaration, 6, .production_id = 115),
-  [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 5, .production_id = 76),
-  [404] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 5, .production_id = 76),
-  [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 7, .production_id = 135),
-  [408] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 7, .production_id = 135),
+  [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 5, .production_id = 79),
+  [392] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 5, .production_id = 79),
+  [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_declaration, 5, .production_id = 85),
+  [396] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_declaration, 5, .production_id = 85),
+  [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_declaration, 6, .production_id = 116),
+  [400] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_declaration, 6, .production_id = 116),
+  [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 5, .production_id = 77),
+  [404] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 5, .production_id = 77),
+  [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 7, .production_id = 136),
+  [408] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 7, .production_id = 136),
   [410] = {.entry = {.count = 1, .reusable = false}}, SHIFT(290),
   [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
   [414] = {.entry = {.count = 1, .reusable = false}}, SHIFT(220),
@@ -48410,8 +48413,8 @@ static TSParseActionEntry ts_parse_actions[] = {
   [448] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_type_body, 2),
   [450] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_body, 2),
   [452] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_body, 2),
-  [454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 6, .production_id = 103),
-  [456] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 6, .production_id = 103),
+  [454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 6, .production_id = 104),
+  [456] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 6, .production_id = 104),
   [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_declaration, 4, .production_id = 52),
   [460] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_declaration, 4, .production_id = 52),
   [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_declaration, 4, .production_id = 60),
@@ -48432,10 +48435,10 @@ static TSParseActionEntry ts_parse_actions[] = {
   [492] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enum_declaration, 3, .production_id = 19),
   [494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 3, .production_id = 19),
   [496] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 3, .production_id = 19),
-  [498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_declaration, 5, .production_id = 93),
-  [500] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_declaration, 5, .production_id = 93),
-  [502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 5, .production_id = 77),
-  [504] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 5, .production_id = 77),
+  [498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_declaration, 5, .production_id = 94),
+  [500] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interface_declaration, 5, .production_id = 94),
+  [502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_declaration, 5, .production_id = 78),
+  [504] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_declaration, 5, .production_id = 78),
   [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
   [508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137),
   [510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15),
@@ -48454,14 +48457,14 @@ static TSParseActionEntry ts_parse_actions[] = {
   [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27),
   [538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(535),
   [540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
-  [542] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 139),
-  [544] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 139),
-  [546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, .production_id = 106),
-  [548] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, .production_id = 106),
+  [542] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 140),
+  [544] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 140),
+  [546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, .production_id = 107),
+  [548] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, .production_id = 107),
   [550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_declaration, 4, .production_id = 58),
   [552] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_declaration, 4, .production_id = 58),
-  [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_declaration, 5, .production_id = 94),
-  [556] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_declaration, 5, .production_id = 94),
+  [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_declaration, 5, .production_id = 95),
+  [556] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_declaration, 5, .production_id = 95),
   [558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 2),
   [560] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_statement, 2),
   [562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_clause, 2),
@@ -48470,36 +48473,36 @@ static TSParseActionEntry ts_parse_actions[] = {
   [568] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_body, 2),
   [570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_continue_statement, 2),
   [572] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_continue_statement, 2),
-  [574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_declaration, 5, .production_id = 95),
-  [576] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_declaration, 5, .production_id = 95),
-  [578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, .production_id = 153),
-  [580] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, .production_id = 153),
-  [582] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 129),
-  [584] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 129),
-  [586] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, .production_id = 152),
-  [588] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, .production_id = 152),
-  [590] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 10, .production_id = 162),
-  [592] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 10, .production_id = 162),
-  [594] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 10, .production_id = 163),
-  [596] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 10, .production_id = 163),
-  [598] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, .production_id = 151),
-  [600] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, .production_id = 151),
-  [602] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, .production_id = 150),
-  [604] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, .production_id = 150),
-  [606] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 10, .production_id = 164),
-  [608] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 10, .production_id = 164),
-  [610] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 80),
-  [612] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 80),
+  [574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_declaration, 5, .production_id = 96),
+  [576] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_declaration, 5, .production_id = 96),
+  [578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, .production_id = 154),
+  [580] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, .production_id = 154),
+  [582] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 130),
+  [584] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 130),
+  [586] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, .production_id = 153),
+  [588] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, .production_id = 153),
+  [590] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 10, .production_id = 163),
+  [592] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 10, .production_id = 163),
+  [594] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 10, .production_id = 164),
+  [596] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 10, .production_id = 164),
+  [598] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, .production_id = 152),
+  [600] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, .production_id = 152),
+  [602] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, .production_id = 151),
+  [604] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, .production_id = 151),
+  [606] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 10, .production_id = 165),
+  [608] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 10, .production_id = 165),
+  [610] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 81),
+  [612] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 81),
   [614] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_with_resources_statement, 5, .production_id = 23),
   [616] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_with_resources_statement, 5, .production_id = 23),
-  [618] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 130),
-  [620] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 130),
+  [618] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 131),
+  [620] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 131),
   [622] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_declaration, 4, .production_id = 57),
   [624] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_declaration, 4, .production_id = 57),
   [626] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2),
   [628] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 2),
-  [630] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_statement, 5, .production_id = 79),
-  [632] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_statement, 5, .production_id = 79),
+  [630] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_statement, 5, .production_id = 80),
+  [632] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_statement, 5, .production_id = 80),
   [634] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 5),
   [636] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assert_statement, 5),
   [638] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_switch_block_statement_group_repeat1, 2),
@@ -48518,8 +48521,8 @@ static TSParseActionEntry ts_parse_actions[] = {
   [666] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_declaration, 4),
   [668] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_local_variable_declaration, 3, .production_id = 39),
   [670] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_local_variable_declaration, 3, .production_id = 39),
-  [672] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 145),
-  [674] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 145),
+  [672] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 146),
+  [674] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 146),
   [676] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 3),
   [678] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assert_statement, 3),
   [680] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 3, .production_id = 20),
@@ -48536,39 +48539,39 @@ static TSParseActionEntry ts_parse_actions[] = {
   [702] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_synchronized_statement, 3, .production_id = 21),
   [704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_throw_statement, 3),
   [706] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_throw_statement, 3),
-  [708] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, .production_id = 156),
-  [710] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, .production_id = 156),
-  [712] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 11, .production_id = 169),
-  [714] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 11, .production_id = 169),
-  [716] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 138),
-  [718] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 138),
+  [708] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, .production_id = 157),
+  [710] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, .production_id = 157),
+  [712] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 11, .production_id = 170),
+  [714] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 11, .production_id = 170),
+  [716] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 139),
+  [718] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 139),
   [720] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 2),
   [722] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_break_statement, 2),
-  [724] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 128),
-  [726] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 128),
+  [724] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 129),
+  [726] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 129),
   [728] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_declaration, 6),
   [730] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_declaration, 6),
   [732] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 3, .production_id = 24),
   [734] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 3, .production_id = 24),
   [736] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42),
-  [738] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 127),
-  [740] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 127),
-  [742] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 140),
-  [744] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 140),
+  [738] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 128),
+  [740] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 128),
+  [742] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 141),
+  [744] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 141),
   [746] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_body, 3),
   [748] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_body, 3),
-  [750] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, .production_id = 107),
-  [752] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, .production_id = 107),
-  [754] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 141),
-  [756] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 141),
-  [758] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enhanced_for_statement, 9, .production_id = 155),
-  [760] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enhanced_for_statement, 9, .production_id = 155),
+  [750] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, .production_id = 108),
+  [752] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, .production_id = 108),
+  [754] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 142),
+  [756] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 142),
+  [758] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enhanced_for_statement, 9, .production_id = 156),
+  [760] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enhanced_for_statement, 9, .production_id = 156),
   [762] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_package_declaration, 4),
   [764] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_package_declaration, 4),
   [766] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_package_declaration, 4, .production_id = 59),
   [768] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_package_declaration, 4, .production_id = 59),
-  [770] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 142),
-  [772] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 142),
+  [770] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 143),
+  [772] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 143),
   [774] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_declaration, 3, .production_id = 28),
   [776] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_declaration, 3, .production_id = 28),
   [778] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_declaration, 3, .production_id = 19),
@@ -48583,34 +48586,34 @@ static TSParseActionEntry ts_parse_actions[] = {
   [796] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_declaration, 3),
   [798] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_declaration, 6, .production_id = 59),
   [800] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_declaration, 6, .production_id = 59),
-  [802] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, .production_id = 154),
-  [804] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, .production_id = 154),
+  [802] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, .production_id = 155),
+  [804] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, .production_id = 155),
   [806] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_declaration, 5, .production_id = 29),
   [808] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_declaration, 5, .production_id = 29),
   [810] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_local_variable_declaration, 4, .production_id = 65),
   [812] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_local_variable_declaration, 4, .production_id = 65),
   [814] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_declaration, 5),
   [816] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_declaration, 5),
-  [818] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 124),
-  [820] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 124),
-  [822] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enhanced_for_statement, 8, .production_id = 143),
-  [824] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enhanced_for_statement, 8, .production_id = 143),
-  [826] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 144),
-  [828] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 144),
+  [818] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, .production_id = 125),
+  [820] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, .production_id = 125),
+  [822] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enhanced_for_statement, 8, .production_id = 144),
+  [824] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_enhanced_for_statement, 8, .production_id = 144),
+  [826] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, .production_id = 145),
+  [828] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, .production_id = 145),
   [830] = {.entry = {.count = 1, .reusable = false}}, SHIFT(601),
   [832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203),
   [834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1013),
   [836] = {.entry = {.count = 1, .reusable = false}}, SHIFT(567),
   [838] = {.entry = {.count = 1, .reusable = false}}, SHIFT(700),
-  [840] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_explicit_constructor_invocation, 5, .production_id = 161),
-  [842] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_explicit_constructor_invocation, 5, .production_id = 161),
+  [840] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_explicit_constructor_invocation, 5, .production_id = 162),
+  [842] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_explicit_constructor_invocation, 5, .production_id = 162),
   [844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(957),
-  [846] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_explicit_constructor_invocation, 3, .production_id = 137),
-  [848] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_explicit_constructor_invocation, 3, .production_id = 137),
-  [850] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_explicit_constructor_invocation, 6, .production_id = 168),
-  [852] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_explicit_constructor_invocation, 6, .production_id = 168),
-  [854] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_explicit_constructor_invocation, 4, .production_id = 149),
-  [856] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_explicit_constructor_invocation, 4, .production_id = 149),
+  [846] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_explicit_constructor_invocation, 3, .production_id = 138),
+  [848] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_explicit_constructor_invocation, 3, .production_id = 138),
+  [850] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_explicit_constructor_invocation, 6, .production_id = 169),
+  [852] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_explicit_constructor_invocation, 6, .production_id = 169),
+  [854] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_explicit_constructor_invocation, 4, .production_id = 150),
+  [856] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_explicit_constructor_invocation, 4, .production_id = 150),
   [858] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_enum_body_declarations_repeat1, 2), SHIFT_REPEAT(620),
   [861] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_enum_body_declarations_repeat1, 2), SHIFT_REPEAT(639),
   [864] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_enum_body_declarations_repeat1, 2), SHIFT_REPEAT(996),
@@ -48672,14 +48675,14 @@ static TSParseActionEntry ts_parse_actions[] = {
   [1008] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_interface_body_repeat1, 2), SHIFT_REPEAT(556),
   [1011] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_interface_body_repeat1, 2), SHIFT_REPEAT(561),
   [1014] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31),
-  [1016] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 5, .production_id = 86),
-  [1018] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 5, .production_id = 86),
+  [1016] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 5, .production_id = 87),
+  [1018] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 5, .production_id = 87),
   [1020] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 30),
   [1022] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 30),
   [1024] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 3, .production_id = 31),
   [1026] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 3, .production_id = 31),
-  [1028] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 5, .production_id = 85),
-  [1030] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 5, .production_id = 85),
+  [1028] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_access, 5, .production_id = 86),
+  [1030] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_access, 5, .production_id = 86),
   [1032] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 1, .production_id = 1),
   [1034] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 1, .production_id = 1),
   [1036] = {.entry = {.count = 1, .reusable = false}}, SHIFT(209),
@@ -48773,16 +48776,16 @@ static TSParseActionEntry ts_parse_actions[] = {
   [1228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_invocation, 2, .production_id = 8),
   [1230] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_arguments, 4),
   [1232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_arguments, 4),
-  [1234] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_invocation, 6, .production_id = 110),
-  [1236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_invocation, 6, .production_id = 110),
+  [1234] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_invocation, 6, .production_id = 111),
+  [1236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_invocation, 6, .production_id = 111),
   [1238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_scoped_type_identifier, 4, .production_id = 69),
   [1240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_scoped_type_identifier, 4, .production_id = 69),
   [1242] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_arguments, 2),
   [1244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_arguments, 2),
   [1246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__unqualified_object_creation_expression, 4, .production_id = 15),
   [1248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__unqualified_object_creation_expression, 4, .production_id = 15),
-  [1250] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_invocation, 6, .production_id = 111),
-  [1252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_invocation, 6, .production_id = 111),
+  [1250] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_invocation, 6, .production_id = 112),
+  [1252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_invocation, 6, .production_id = 112),
   [1254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_creation_expression, 4, .production_id = 46),
   [1256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_creation_expression, 4, .production_id = 46),
   [1258] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_array_creation_expression, 4, .production_id = 47),
@@ -48811,10 +48814,10 @@ static TSParseActionEntry ts_parse_actions[] = {
   [1304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_type, 2, .dynamic_precedence = 10),
   [1306] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_scoped_type_identifier, 3, .production_id = 34),
   [1308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_scoped_type_identifier, 3, .production_id = 34),
-  [1310] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_invocation, 7, .production_id = 134),
-  [1312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_invocation, 7, .production_id = 134),
-  [1314] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_invocation, 7, .production_id = 133),
-  [1316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_invocation, 7, .production_id = 133),
+  [1310] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_invocation, 7, .production_id = 135),
+  [1312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_invocation, 7, .production_id = 135),
+  [1314] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_invocation, 7, .production_id = 134),
+  [1316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_invocation, 7, .production_id = 134),
   [1318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152),
   [1320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(626),
   [1322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(755),
@@ -48835,12 +48838,12 @@ static TSParseActionEntry ts_parse_actions[] = {
   [1352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_modifiers_repeat1, 2),
   [1354] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_modifiers_repeat1, 2), SHIFT_REPEAT(369),
   [1357] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_modifiers_repeat1, 2), SHIFT_REPEAT(713),
-  [1360] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_invocation, 5, .production_id = 87),
-  [1362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_invocation, 5, .production_id = 87),
+  [1360] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_invocation, 5, .production_id = 88),
+  [1362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_invocation, 5, .production_id = 88),
   [1364] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_reference, 4),
   [1366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_reference, 4),
-  [1368] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_invocation, 5, .production_id = 88),
-  [1370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_invocation, 5, .production_id = 88),
+  [1368] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_invocation, 5, .production_id = 89),
+  [1370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_invocation, 5, .production_id = 89),
   [1372] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_scoped_type_identifier, 3, .production_id = 41),
   [1374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_scoped_type_identifier, 3, .production_id = 41),
   [1376] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_arguments, 3),
@@ -48853,30 +48856,30 @@ static TSParseActionEntry ts_parse_actions[] = {
   [1390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_initializer, 3),
   [1392] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_scoped_type_identifier, 4, .production_id = 63),
   [1394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_scoped_type_identifier, 4, .production_id = 63),
-  [1396] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_declaration, 2, .production_id = 75),
-  [1398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_declaration, 2, .production_id = 75),
+  [1396] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_declaration, 2, .production_id = 76),
+  [1398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_declaration, 2, .production_id = 76),
   [1400] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation, 3, .production_id = 26),
   [1402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation, 3, .production_id = 26),
-  [1404] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor_declaration, 3, .production_id = 96),
-  [1406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor_declaration, 3, .production_id = 96),
+  [1404] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor_declaration, 3, .production_id = 97),
+  [1406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor_declaration, 3, .production_id = 97),
   [1408] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_argument_list, 2),
   [1410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_argument_list, 2),
-  [1412] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor_declaration, 4, .production_id = 117),
-  [1414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor_declaration, 4, .production_id = 117),
+  [1412] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor_declaration, 4, .production_id = 118),
+  [1414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor_declaration, 4, .production_id = 118),
   [1416] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_argument_list, 3),
   [1418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_argument_list, 3),
-  [1420] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_declaration, 4, .production_id = 116),
-  [1422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_declaration, 4, .production_id = 116),
-  [1424] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_declaration, 3, .production_id = 97),
-  [1426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_declaration, 3, .production_id = 97),
-  [1428] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_declaration, 3, .production_id = 98),
-  [1430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_declaration, 3, .production_id = 98),
+  [1420] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_declaration, 4, .production_id = 117),
+  [1422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_declaration, 4, .production_id = 117),
+  [1424] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_declaration, 3, .production_id = 98),
+  [1426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_declaration, 3, .production_id = 98),
+  [1428] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_declaration, 3, .production_id = 99),
+  [1430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_declaration, 3, .production_id = 99),
   [1432] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_argument_list, 4),
   [1434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_argument_list, 4),
   [1436] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor_body, 2),
   [1438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor_body, 2),
-  [1440] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor_declaration, 3, .production_id = 101),
-  [1442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor_declaration, 3, .production_id = 101),
+  [1440] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor_declaration, 3, .production_id = 102),
+  [1442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor_declaration, 3, .production_id = 102),
   [1444] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 3, .production_id = 39),
   [1446] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field_declaration, 3, .production_id = 39),
   [1448] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field_declaration, 4, .production_id = 65),
@@ -48885,18 +48888,18 @@ static TSParseActionEntry ts_parse_actions[] = {
   [1454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_array_type, 2, .production_id = 11),
   [1456] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_integral_type, 1),
   [1458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_integral_type, 1),
-  [1460] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_declaration, 2, .production_id = 74),
-  [1462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_declaration, 2, .production_id = 74),
+  [1460] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_method_declaration, 2, .production_id = 75),
+  [1462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_declaration, 2, .production_id = 75),
   [1464] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation, 3, .production_id = 25),
   [1466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation, 3, .production_id = 25),
-  [1468] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor_declaration, 2, .production_id = 72),
-  [1470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor_declaration, 2, .production_id = 72),
+  [1468] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor_declaration, 2, .production_id = 73),
+  [1470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor_declaration, 2, .production_id = 73),
   [1472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_static_initializer, 2),
   [1474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_static_initializer, 2),
   [1476] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor_body, 4),
   [1478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constructor_body, 4),
-  [1480] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_declaration, 5, .production_id = 136),
-  [1482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_declaration, 5, .production_id = 136),
+  [1480] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_record_declaration, 5, .production_id = 137),
+  [1482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record_declaration, 5, .production_id = 137),
   [1484] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_floating_point_type, 1),
   [1486] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_floating_point_type, 1),
   [1488] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_constructor_body, 3),
@@ -48940,23 +48943,23 @@ static TSParseActionEntry ts_parse_actions[] = {
   [1565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_expression, 3, .production_id = 32),
   [1567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142),
   [1569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149),
-  [1571] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ternary_expression, 5, .production_id = 89),
+  [1571] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ternary_expression, 5, .production_id = 90),
   [1573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_expression, 3, .production_id = 27),
-  [1575] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_type_element_declaration, 7, .production_id = 165),
-  [1577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_type_element_declaration, 7, .production_id = 165),
-  [1579] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_type_element_declaration, 8, .production_id = 170),
-  [1581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_type_element_declaration, 8, .production_id = 170),
-  [1583] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_type_element_declaration, 6, .production_id = 159),
-  [1585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_type_element_declaration, 6, .production_id = 159),
-  [1587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_type_element_declaration, 6, .production_id = 160),
-  [1589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_type_element_declaration, 6, .production_id = 160),
+  [1575] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_type_element_declaration, 7, .production_id = 166),
+  [1577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_type_element_declaration, 7, .production_id = 166),
+  [1579] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_type_element_declaration, 8, .production_id = 171),
+  [1581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_type_element_declaration, 8, .production_id = 171),
+  [1583] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_type_element_declaration, 6, .production_id = 160),
+  [1585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_type_element_declaration, 6, .production_id = 160),
+  [1587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_type_element_declaration, 6, .production_id = 161),
+  [1589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_type_element_declaration, 6, .production_id = 161),
   [1591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(624),
-  [1593] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_type_element_declaration, 7, .production_id = 166),
-  [1595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_type_element_declaration, 7, .production_id = 166),
-  [1597] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_type_element_declaration, 5, .production_id = 148),
-  [1599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_type_element_declaration, 5, .production_id = 148),
-  [1601] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_type_element_declaration, 6, .production_id = 157),
-  [1603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_type_element_declaration, 6, .production_id = 157),
+  [1593] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_type_element_declaration, 7, .production_id = 167),
+  [1595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_type_element_declaration, 7, .production_id = 167),
+  [1597] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_type_element_declaration, 5, .production_id = 149),
+  [1599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_type_element_declaration, 5, .production_id = 149),
+  [1601] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_type_element_declaration, 6, .production_id = 158),
+  [1603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_type_element_declaration, 6, .production_id = 158),
   [1605] = {.entry = {.count = 1, .reusable = false}}, SHIFT(195),
   [1607] = {.entry = {.count = 1, .reusable = false}}, SHIFT(196),
   [1609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196),
@@ -48974,8 +48977,8 @@ static TSParseActionEntry ts_parse_actions[] = {
   [1633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157),
   [1635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233),
   [1637] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__element_value, 1),
-  [1639] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_type_element_declaration, 7, .production_id = 167),
-  [1641] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_type_element_declaration, 7, .production_id = 167),
+  [1639] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_annotation_type_element_declaration, 7, .production_id = 168),
+  [1641] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_annotation_type_element_declaration, 7, .production_id = 168),
   [1643] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_modifiers_repeat1, 2), SHIFT_REPEAT(453),
   [1646] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_modifiers_repeat1, 2), SHIFT_REPEAT(744),
   [1649] = {.entry = {.count = 1, .reusable = false}}, SHIFT(453),
@@ -49002,17 +49005,17 @@ static TSParseActionEntry ts_parse_actions[] = {
   [1692] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
   [1694] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326),
   [1696] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_array_initializer_repeat1, 2),
-  [1698] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_statement_repeat1, 2, .production_id = 81),
+  [1698] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_statement_repeat1, 2, .production_id = 82),
   [1700] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210),
   [1702] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211),
-  [1704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource, 5, .production_id = 121),
-  [1706] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_statement_repeat2, 2, .production_id = 125),
+  [1704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource, 5, .production_id = 122),
+  [1706] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_statement_repeat2, 2, .production_id = 126),
   [1708] = {.entry = {.count = 1, .reusable = false}}, SHIFT(963),
   [1710] = {.entry = {.count = 1, .reusable = false}}, SHIFT(985),
   [1712] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1003),
   [1714] = {.entry = {.count = 1, .reusable = true}}, SHIFT(984),
   [1716] = {.entry = {.count = 1, .reusable = false}}, SHIFT(983),
-  [1718] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource, 4, .production_id = 104),
+  [1718] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource, 4, .production_id = 105),
   [1720] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221),
   [1722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134),
   [1724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
@@ -49104,10 +49107,10 @@ static TSParseActionEntry ts_parse_actions[] = {
   [1899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(956),
   [1901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73),
   [1903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(449),
-  [1905] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_declarator, 2, .production_id = 71),
+  [1905] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_declarator, 2, .production_id = 72),
   [1907] = {.entry = {.count = 1, .reusable = true}}, SHIFT(971),
   [1909] = {.entry = {.count = 1, .reusable = true}}, SHIFT(448),
-  [1911] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_declarator, 2, .production_id = 102),
+  [1911] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_declarator, 2, .production_id = 103),
   [1913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
   [1915] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160),
   [1917] = {.entry = {.count = 1, .reusable = true}}, SHIFT(907),
@@ -49163,14 +49166,14 @@ static TSParseActionEntry ts_parse_actions[] = {
   [2024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(550),
   [2026] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 3, .production_id = 29),
   [2028] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_formal_parameters, 2),
-  [2030] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 5, .production_id = 131),
-  [2032] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 5, .production_id = 146),
+  [2030] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 5, .production_id = 132),
+  [2032] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 5, .production_id = 147),
   [2034] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 5, .production_id = 29),
   [2036] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 5, .production_id = 59),
   [2038] = {.entry = {.count = 1, .reusable = false}}, SHIFT(285),
   [2040] = {.entry = {.count = 1, .reusable = false}}, SHIFT(288),
   [2042] = {.entry = {.count = 1, .reusable = false}}, SHIFT(292),
-  [2044] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 5, .production_id = 147),
+  [2044] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 5, .production_id = 148),
   [2046] = {.entry = {.count = 1, .reusable = true}}, SHIFT(547),
   [2048] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 5),
   [2050] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124),
@@ -49183,7 +49186,7 @@ static TSParseActionEntry ts_parse_actions[] = {
   [2064] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1023),
   [2066] = {.entry = {.count = 1, .reusable = true}}, SHIFT(552),
   [2068] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 6),
-  [2070] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 6, .production_id = 147),
+  [2070] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 6, .production_id = 148),
   [2072] = {.entry = {.count = 1, .reusable = true}}, SHIFT(967),
   [2074] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 4, .production_id = 59),
   [2076] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_switch_block_repeat2, 2),
@@ -49195,13 +49198,13 @@ static TSParseActionEntry ts_parse_actions[] = {
   [2090] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 3),
   [2092] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 6, .production_id = 29),
   [2094] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_formal_parameters, 4),
-  [2096] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 4, .production_id = 131),
+  [2096] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 4, .production_id = 132),
   [2098] = {.entry = {.count = 1, .reusable = true}}, SHIFT(340),
   [2100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 4, .production_id = 29),
   [2102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(726),
   [2104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130),
   [2106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378),
-  [2108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 6, .production_id = 146),
+  [2108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_directive, 6, .production_id = 147),
   [2110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wildcard, 2),
   [2112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(530),
   [2114] = {.entry = {.count = 1, .reusable = false}}, SHIFT(913),
@@ -49242,7 +49245,7 @@ static TSParseActionEntry ts_parse_actions[] = {
   [2185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(680),
   [2187] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_interface_type_list_repeat1, 2), SHIFT_REPEAT(532),
   [2190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_interface_type_list_repeat1, 2),
-  [2192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 2),
+  [2192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 2, .production_id = 71),
   [2194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(527),
   [2196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(671),
   [2198] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_bound_repeat1, 2), SHIFT_REPEAT(528),
@@ -49251,10 +49254,10 @@ static TSParseActionEntry ts_parse_actions[] = {
   [2205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declarator, 1, .production_id = 13),
   [2207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163),
   [2209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_switch_label, 3),
-  [2211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_header, 2, .production_id = 73),
+  [2211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_header, 2, .production_id = 74),
   [2213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(658),
   [2215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(655),
-  [2217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_header, 3, .production_id = 100),
+  [2217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_header, 3, .production_id = 101),
   [2219] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_enum_body_repeat1, 2), SHIFT_REPEAT(543),
   [2222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_body_repeat1, 2),
   [2224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243),
@@ -49268,7 +49271,7 @@ static TSParseActionEntry ts_parse_actions[] = {
   [2240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(651),
   [2242] = {.entry = {.count = 1, .reusable = false}}, SHIFT(627),
   [2244] = {.entry = {.count = 1, .reusable = false}}, SHIFT(625),
-  [2246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 1),
+  [2246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 1, .production_id = 2),
   [2248] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2), SHIFT_REPEAT(157),
   [2251] = {.entry = {.count = 1, .reusable = false}}, SHIFT(950),
   [2253] = {.entry = {.count = 1, .reusable = false}}, SHIFT(951),
@@ -49287,7 +49290,7 @@ static TSParseActionEntry ts_parse_actions[] = {
   [2280] = {.entry = {.count = 1, .reusable = false}}, SHIFT(848),
   [2282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_throws, 3),
   [2284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_bound, 2),
-  [2286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_header, 4, .production_id = 118),
+  [2286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_header, 4, .production_id = 119),
   [2288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44),
   [2290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(633),
   [2292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(679),
@@ -49297,16 +49300,16 @@ static TSParseActionEntry ts_parse_actions[] = {
   [2300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72),
   [2302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(978),
   [2304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268),
-  [2306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_declarator, 3, .production_id = 119),
-  [2308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_declarator, 3, .production_id = 120),
+  [2306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_declarator, 3, .production_id = 120),
+  [2308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_declarator, 3, .production_id = 121),
   [2310] = {.entry = {.count = 1, .reusable = false}}, SHIFT(903),
   [2312] = {.entry = {.count = 1, .reusable = false}}, SHIFT(900),
   [2314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306),
   [2316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1025),
   [2318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386),
   [2320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310),
-  [2322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_statement_repeat2, 2, .production_id = 126),
-  [2324] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_for_statement_repeat2, 2, .production_id = 126), SHIFT_REPEAT(208),
+  [2322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_statement_repeat2, 2, .production_id = 127),
+  [2324] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_for_statement_repeat2, 2, .production_id = 127), SHIFT_REPEAT(208),
   [2327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(695),
   [2329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_declarator_list, 2, .production_id = 40),
   [2331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30),
@@ -49316,7 +49319,7 @@ static TSParseActionEntry ts_parse_actions[] = {
   [2339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
   [2341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_inferred_parameters_repeat1, 2),
   [2343] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_inferred_parameters_repeat1, 2), SHIFT_REPEAT(998),
-  [2346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_constant, 2, .production_id = 83),
+  [2346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_constant, 2, .production_id = 84),
   [2348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388),
   [2350] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_cast_expression_repeat1, 2, .production_id = 45), SHIFT_REPEAT(522),
   [2353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cast_expression_repeat1, 2, .production_id = 45),
@@ -49326,8 +49329,8 @@ static TSParseActionEntry ts_parse_actions[] = {
   [2361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_formal_parameters_repeat1, 2),
   [2363] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_formal_parameters_repeat1, 2), SHIFT_REPEAT(314),
   [2366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(969),
-  [2368] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_for_statement_repeat1, 2, .production_id = 82), SHIFT_REPEAT(204),
-  [2371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_statement_repeat1, 2, .production_id = 82),
+  [2368] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_for_statement_repeat1, 2, .production_id = 83), SHIFT_REPEAT(204),
+  [2371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_statement_repeat1, 2, .production_id = 83),
   [2373] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_array_initializer_repeat1, 2), SHIFT_REPEAT(116),
   [2376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(661),
   [2378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
@@ -49351,9 +49354,9 @@ static TSParseActionEntry ts_parse_actions[] = {
   [2418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_constant, 3, .production_id = 19),
   [2420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(442),
   [2422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interface_type_list, 2),
-  [2424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_constant, 4, .production_id = 132),
+  [2424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_constant, 4, .production_id = 133),
   [2426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(266),
-  [2428] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_constant, 3, .production_id = 109),
+  [2428] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum_constant, 3, .production_id = 110),
   [2430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169),
   [2432] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_switch_rule, 3),
   [2434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128),
@@ -49381,111 +49384,112 @@ static TSParseActionEntry ts_parse_actions[] = {
   [2480] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_annotation_argument_list_repeat1, 2), SHIFT_REPEAT(932),
   [2483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248),
   [2485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spread_parameter, 4),
-  [2487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_header, 5, .production_id = 118),
+  [2487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_header, 5, .production_id = 119),
   [2489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wildcard, 3),
   [2491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1006),
   [2493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226),
   [2495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1004),
   [2497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156),
   [2499] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_declarator_list_repeat1, 2, .production_id = 66),
-  [2501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_header, 3, .production_id = 73),
+  [2501] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_header, 3, .production_id = 74),
   [2503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__wildcard_bounds, 2),
   [2505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(945),
   [2507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(623),
-  [2509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__constructor_declarator, 2, .production_id = 71),
+  [2509] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__constructor_declarator, 2, .production_id = 72),
   [2511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247),
-  [2513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(783),
-  [2515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249),
-  [2517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
-  [2519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265),
-  [2521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_switch_label, 1),
-  [2523] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__constructor_declarator, 3, .production_id = 99),
-  [2525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_element_value_pair, 3, .production_id = 108),
-  [2527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(785),
-  [2529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251),
-  [2531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296),
-  [2533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_superclass, 2),
-  [2535] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 3),
-  [2537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_formal_parameter, 2, .production_id = 14),
-  [2539] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spread_parameter, 3),
-  [2541] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cast_expression_repeat1, 2, .production_id = 43),
-  [2543] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_formal_parameter, 3, .production_id = 42),
-  [2545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1034),
-  [2547] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_header, 4, .production_id = 100),
-  [2549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241),
-  [2551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242),
-  [2553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(731),
-  [2555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(732),
-  [2557] = {.entry = {.count = 1, .reusable = false}}, SHIFT(371),
-  [2559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(861),
-  [2561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194),
-  [2563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(862),
-  [2565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192),
-  [2567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(613),
-  [2569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_specification, 4),
-  [2571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315),
-  [2573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch_formal_parameter, 3, .production_id = 123),
-  [2575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(416),
-  [2577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230),
-  [2579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(628),
-  [2581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252),
-  [2583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255),
-  [2585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269),
-  [2587] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inferred_parameters, 4),
-  [2589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(510),
-  [2591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(899),
-  [2593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1020),
-  [2595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch_formal_parameter, 2, .production_id = 105),
-  [2597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inferred_parameters, 3),
-  [2599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190),
-  [2601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(764),
-  [2603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_specification, 3),
-  [2605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(893),
-  [2607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197),
-  [2609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376),
-  [2611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(663),
-  [2613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(941),
-  [2615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(768),
-  [2617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(443),
-  [2619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_super_interfaces, 2),
-  [2621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270),
-  [2623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(452),
-  [2625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186),
-  [2627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__default_value, 2, .production_id = 158),
-  [2629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(447),
-  [2631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(632),
-  [2633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(934),
-  [2635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(391),
-  [2637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182),
-  [2639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(616),
-  [2641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95),
-  [2643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(919),
-  [2645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215),
-  [2647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410),
-  [2649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214),
-  [2651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(952),
-  [2653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316),
-  [2655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(392),
-  [2657] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_specification, 5),
-  [2659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101),
-  [2661] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
-  [2663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329),
-  [2665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328),
-  [2667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(516),
-  [2669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(678),
-  [2671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317),
-  [2673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(915),
-  [2675] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asterisk, 1),
-  [2677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(753),
-  [2679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254),
-  [2681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258),
-  [2683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267),
-  [2685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(445),
-  [2687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
-  [2689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70),
-  [2691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(637),
-  [2693] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extends_interfaces, 2),
-  [2695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271),
+  [2513] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 2, .production_id = 2),
+  [2515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(783),
+  [2517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249),
+  [2519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
+  [2521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265),
+  [2523] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_switch_label, 1),
+  [2525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__constructor_declarator, 3, .production_id = 100),
+  [2527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_element_value_pair, 3, .production_id = 109),
+  [2529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(785),
+  [2531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251),
+  [2533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296),
+  [2535] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_superclass, 2),
+  [2537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameter, 3, .production_id = 71),
+  [2539] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_formal_parameter, 2, .production_id = 14),
+  [2541] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_spread_parameter, 3),
+  [2543] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cast_expression_repeat1, 2, .production_id = 43),
+  [2545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_formal_parameter, 3, .production_id = 42),
+  [2547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1034),
+  [2549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__method_header, 4, .production_id = 101),
+  [2551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241),
+  [2553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242),
+  [2555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(731),
+  [2557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(732),
+  [2559] = {.entry = {.count = 1, .reusable = false}}, SHIFT(371),
+  [2561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(861),
+  [2563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194),
+  [2565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(862),
+  [2567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192),
+  [2569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(613),
+  [2571] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_specification, 4),
+  [2573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315),
+  [2575] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch_formal_parameter, 3, .production_id = 124),
+  [2577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(416),
+  [2579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230),
+  [2581] = {.entry = {.count = 1, .reusable = true}}, SHIFT(628),
+  [2583] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252),
+  [2585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255),
+  [2587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269),
+  [2589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inferred_parameters, 4),
+  [2591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(510),
+  [2593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(899),
+  [2595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1020),
+  [2597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_catch_formal_parameter, 2, .production_id = 106),
+  [2599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_inferred_parameters, 3),
+  [2601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190),
+  [2603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(764),
+  [2605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_specification, 3),
+  [2607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(893),
+  [2609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197),
+  [2611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376),
+  [2613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(663),
+  [2615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(941),
+  [2617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(768),
+  [2619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(443),
+  [2621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_super_interfaces, 2),
+  [2623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270),
+  [2625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(452),
+  [2627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186),
+  [2629] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__default_value, 2, .production_id = 159),
+  [2631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(447),
+  [2633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(632),
+  [2635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(934),
+  [2637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(391),
+  [2639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182),
+  [2641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(616),
+  [2643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95),
+  [2645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(919),
+  [2647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215),
+  [2649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410),
+  [2651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214),
+  [2653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(952),
+  [2655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316),
+  [2657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(392),
+  [2659] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_resource_specification, 5),
+  [2661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101),
+  [2663] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
+  [2665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329),
+  [2667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328),
+  [2669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(516),
+  [2671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(678),
+  [2673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317),
+  [2675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(915),
+  [2677] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_asterisk, 1),
+  [2679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(753),
+  [2681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254),
+  [2683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258),
+  [2685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267),
+  [2687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(445),
+  [2689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
+  [2691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70),
+  [2693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(637),
+  [2695] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_extends_interfaces, 2),
+  [2697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271),
 };
 
 #ifdef __cplusplus
@@ -49496,7 +49500,7 @@ extern "C" {
 #endif
 
 extern const TSLanguage *tree_sitter_java(void) {
-  static TSLanguage language = {
+  static const TSLanguage language = {
     .version = LANGUAGE_VERSION,
     .symbol_count = SYMBOL_COUNT,
     .alias_count = ALIAS_COUNT,
@@ -49507,18 +49511,18 @@ extern const TSLanguage *tree_sitter_java(void) {
     .production_id_count = PRODUCTION_ID_COUNT,
     .field_count = FIELD_COUNT,
     .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
-    .parse_table = (const uint16_t *)ts_parse_table,
-    .small_parse_table = (const uint16_t *)ts_small_parse_table,
-    .small_parse_table_map = (const uint32_t *)ts_small_parse_table_map,
+    .parse_table = &ts_parse_table[0][0],
+    .small_parse_table = ts_small_parse_table,
+    .small_parse_table_map = ts_small_parse_table_map,
     .parse_actions = ts_parse_actions,
     .symbol_names = ts_symbol_names,
     .field_names = ts_field_names,
-    .field_map_slices = (const TSFieldMapSlice *)ts_field_map_slices,
-    .field_map_entries = (const TSFieldMapEntry *)ts_field_map_entries,
+    .field_map_slices = ts_field_map_slices,
+    .field_map_entries = ts_field_map_entries,
     .symbol_metadata = ts_symbol_metadata,
     .public_symbol_map = ts_symbol_map,
     .alias_map = ts_non_terminal_alias_map,
-    .alias_sequences = (const TSSymbol *)ts_alias_sequences,
+    .alias_sequences = &ts_alias_sequences[0][0],
     .lex_modes = ts_lex_modes,
     .lex_fn = ts_lex,
     .keyword_lex_fn = ts_lex_keywords,
diff --git a/src/tree_sitter/parser.h b/src/tree_sitter/parser.h
index a3a87bd..cbbc7b4 100644
--- a/src/tree_sitter/parser.h
+++ b/src/tree_sitter/parser.h
@@ -102,8 +102,8 @@ struct TSLanguage {
   const uint16_t *small_parse_table;
   const uint32_t *small_parse_table_map;
   const TSParseActionEntry *parse_actions;
-  const char **symbol_names;
-  const char **field_names;
+  const char * const *symbol_names;
+  const char * const *field_names;
   const TSFieldMapSlice *field_map_slices;
   const TSFieldMapEntry *field_map_entries;
   const TSSymbolMetadata *symbol_metadata;


Test patch:
diff --git a/test/corpus/expressions.txt b/test/corpus/expressions.txt
index d035eb6..feccaf7 100644
--- a/test/corpus/expressions.txt
+++ b/test/corpus/expressions.txt
@@ -786,7 +786,7 @@ class Test {
         int a = switch (i) {
             case 0, 1 -> 6;
             case 2 -> 7;
-            default -> { 
+            default -> {
                 int result = 8;
                 yield result;
             }
@@ -895,7 +895,7 @@ class Test {
                       (switch_label)
                       (expression_statement
                         (decimal_integer_literal)))))))))))))
-                        
+
 ==================================
 type arguments
 ==================================
@@ -913,7 +913,7 @@ class Box <T> {
     (identifier)
       (type_parameters
         (type_parameter
-          (identifier)))
+          (type_identifier)))
     (class_body
       (field_declaration
         (modifiers)
@@ -974,7 +974,7 @@ class someClass <T> {
     (identifier)
     (type_parameters
       (type_parameter
-        (identifier)))
+        (type_identifier)))
       (class_body
         (method_declaration
           (modifiers)
@@ -1000,7 +1000,7 @@ class someClass <T> {
           (modifiers)
           (type_parameters
             (type_parameter
-              (identifier)))
+              (type_identifier)))
           (void_type)
             (identifier)
             (formal_parameters