diff --git a/BUILD.gn b/BUILD.gn
index ad09ed8..6295280 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -39,6 +39,7 @@
     # Fuchsia has run_vm_tests marked testonly.
     testonly = true
   }
+
   deps = [
     "runtime/bin:dart",
     "runtime/bin:entrypoints_verification_test",
@@ -59,6 +60,16 @@
     ]
   }
 
+  # We do not support AOT on ia32 and should therefore cannot provide native
+  # snapshot tooling.
+  if (dart_target_arch != "ia32") {
+    if (dart_runtime_mode == "release") {
+      deps += [ "runtime/bin:analyze_snapshot_product" ]
+    } else {
+      deps += [ "runtime/bin:analyze_snapshot" ]
+    }
+  }
+
   if (is_linux || is_android) {
     deps += [ "runtime/bin:abstract_socket_test" ]
   }
diff --git a/DEPS b/DEPS
index 14eb54e..58bfd5f 100644
--- a/DEPS
+++ b/DEPS
@@ -110,7 +110,7 @@
   "dart_style_rev": "6f894c0ca33686122be9085f06e5b9bf6ad55262",
 
   "dartdoc_rev" : "57761bb61e455eedf93e18c99082445f82116300",
-  "devtools_rev" : "2970d4eab8b8e023ac0779090ed17ae391418b9b",
+  "devtools_rev" : "b9f2039239cc72ac8b26f8a5fe46123f34d53ce1",
   "ffi_rev": "4dd32429880a57b64edaf54c9d5af8a9fa9a4ffb",
   "fixnum_rev": "848341f061359ef7ddc0cad472c2ecbb036b28ac",
   "file_rev": "1ebc38852ffed24b564910317982298b56c2cedd",
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart b/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart
index 1a3c741..db5e648 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/forwarding_listener.dart
@@ -330,8 +330,9 @@
   }
 
   @override
-  void beginMixinDeclaration(Token mixinKeyword, Token name) {
-    listener?.beginMixinDeclaration(mixinKeyword, name);
+  void beginMixinDeclaration(
+      Token? augmentToken, Token mixinKeyword, Token name) {
+    listener?.beginMixinDeclaration(augmentToken, mixinKeyword, name);
   }
 
   @override
@@ -417,8 +418,9 @@
   }
 
   @override
-  void beginTopLevelMethod(Token lastConsumed, Token? externalToken) {
-    listener?.beginTopLevelMethod(lastConsumed, externalToken);
+  void beginTopLevelMethod(
+      Token lastConsumed, Token? augmentToken, Token? externalToken) {
+    listener?.beginTopLevelMethod(lastConsumed, augmentToken, externalToken);
   }
 
   @override
@@ -546,6 +548,7 @@
   @override
   void endClassFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -556,6 +559,7 @@
       Token endToken) {
     listener?.endClassFields(
         abstractToken,
+        augmentToken,
         externalToken,
         staticToken,
         covariantToken,
@@ -674,6 +678,7 @@
   @override
   void endEnumFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -684,6 +689,7 @@
       Token endToken) {
     listener?.endClassFields(
         abstractToken,
+        augmentToken,
         externalToken,
         staticToken,
         covariantToken,
@@ -729,6 +735,7 @@
   @override
   void endExtensionFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -739,6 +746,7 @@
       Token endToken) {
     listener?.endExtensionFields(
         abstractToken,
+        augmentToken,
         externalToken,
         staticToken,
         covariantToken,
@@ -977,6 +985,7 @@
   @override
   void endMixinFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -987,6 +996,7 @@
       Token endToken) {
     listener?.endMixinFields(
         abstractToken,
+        augmentToken,
         externalToken,
         staticToken,
         covariantToken,
@@ -1096,14 +1106,23 @@
   void beginFields(
       DeclarationKind declarationKind,
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
       Token? lateToken,
       Token? varFinalOrConst,
       Token lastConsumed) {
-    listener?.beginFields(declarationKind, abstractToken, externalToken,
-        staticToken, covariantToken, lateToken, varFinalOrConst, lastConsumed);
+    listener?.beginFields(
+        declarationKind,
+        abstractToken,
+        augmentToken,
+        externalToken,
+        staticToken,
+        covariantToken,
+        lateToken,
+        varFinalOrConst,
+        lastConsumed);
   }
 
   @override
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart b/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart
index f09b097..0d7eb58 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/listener.dart
@@ -186,7 +186,8 @@
   }
 
   /// Handle the beginning of a mixin declaration.
-  void beginMixinDeclaration(Token mixinKeyword, Token name) {}
+  void beginMixinDeclaration(
+      Token? augmentToken, Token mixinKeyword, Token name) {}
 
   /// Handle an on clause in a mixin declaration. Substructures:
   /// - implemented types
@@ -436,6 +437,7 @@
   /// Started by [beginFields].
   void endClassFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -456,6 +458,7 @@
   /// Started by [beginFields].
   void endMixinFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -465,8 +468,17 @@
       Token beginToken,
       Token endToken) {
     // TODO(danrubel): push implementation into subclasses
-    endClassFields(abstractToken, externalToken, staticToken, covariantToken,
-        lateToken, varFinalOrConst, count, beginToken, endToken);
+    endClassFields(
+        abstractToken,
+        augmentToken,
+        externalToken,
+        staticToken,
+        covariantToken,
+        lateToken,
+        varFinalOrConst,
+        count,
+        beginToken,
+        endToken);
   }
 
   /// Handle the end of a extension field declaration.  Substructures:
@@ -478,6 +490,7 @@
   /// Started by [beginFields].
   void endExtensionFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -487,8 +500,17 @@
       Token beginToken,
       Token endToken) {
     // TODO(danrubel): push implementation into subclasses
-    endClassFields(abstractToken, externalToken, staticToken, covariantToken,
-        lateToken, varFinalOrConst, count, beginToken, endToken);
+    endClassFields(
+        abstractToken,
+        augmentToken,
+        externalToken,
+        staticToken,
+        covariantToken,
+        lateToken,
+        varFinalOrConst,
+        count,
+        beginToken,
+        endToken);
   }
 
   /// Handle the end of an enum field declaration.  Substructures:
@@ -500,6 +522,7 @@
   /// Started by [beginFields].
   void endEnumFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -508,8 +531,17 @@
       int count,
       Token beginToken,
       Token endToken) {
-    endClassFields(abstractToken, externalToken, staticToken, covariantToken,
-        lateToken, varFinalOrConst, count, beginToken, endToken);
+    endClassFields(
+        abstractToken,
+        augmentToken,
+        externalToken,
+        staticToken,
+        covariantToken,
+        lateToken,
+        varFinalOrConst,
+        count,
+        beginToken,
+        endToken);
   }
 
   /// Handle the end of an enum method declaration.  Substructures:
@@ -1249,6 +1281,7 @@
   void beginFields(
       DeclarationKind declarationKind,
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -1276,7 +1309,8 @@
     logEvent("TopLevelFields");
   }
 
-  void beginTopLevelMethod(Token lastConsumed, Token? externalToken) {}
+  void beginTopLevelMethod(
+      Token lastConsumed, Token? augmentToken, Token? externalToken) {}
 
   /// Handle the end of a top level method.  Substructures:
   /// - metadata
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/modifier_context.dart b/pkg/_fe_analyzer_shared/lib/src/parser/modifier_context.dart
index a062b38..99e4582 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/modifier_context.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/modifier_context.dart
@@ -34,9 +34,10 @@
 
 /// This class is used to parse modifiers in most locations where modifiers
 /// can occur, but does not call handleModifier or handleModifiers.
-class ModifierRecoveryContext {
+class ModifierContext {
   final Parser parser;
   Token? abstractToken;
+  Token? augmentToken;
   Token? constToken;
   Token? covariantToken;
   Token? externalToken;
@@ -47,12 +48,9 @@
   Token? varToken;
 
   // Set `true` when parsing modifiers after the `factory` token.
-  bool afterFactory = false;
+  bool _afterFactory = false;
 
-  // TODO(danrubel): Replace [ModifierRecoveryContext] and [ModifierContext]
-  // with this class.
-
-  ModifierRecoveryContext(this.parser);
+  ModifierContext(this.parser);
 
   set staticOrCovariant(Token? staticOrCovariant) {
     if (staticOrCovariant == null) {
@@ -94,9 +92,76 @@
     }
   }
 
+  /// Parse modifiers for class declarations.
+  Token parseClassModifiers(Token token, Token keyword) {
+    token = _parseModifiers(token);
+    if (constToken != null) {
+      reportTopLevelModifierError(constToken!, keyword);
+    }
+    if (externalToken != null) {
+      reportTopLevelModifierError(externalToken!, keyword);
+    }
+    reportExtraneousModifier(covariantToken);
+    reportExtraneousModifier(finalToken);
+    reportExtraneousModifier(lateToken);
+    reportExtraneousModifier(requiredToken);
+    reportExtraneousModifier(staticToken);
+    reportExtraneousModifier(varToken);
+    return token;
+  }
+
+  /// Parse modifiers for enum declarations.
+  Token parseEnumModifiers(Token token, Token keyword) {
+    token = _parseModifiers(token);
+    reportTopLevelModifierError(constToken, keyword);
+    reportTopLevelModifierError(externalToken, keyword);
+    reportExtraneousModifier(abstractToken);
+    // TODO(johnniwinther): Should we support 'augment' on enums.
+    reportExtraneousModifier(augmentToken);
+    reportExtraneousModifier(covariantToken);
+    reportExtraneousModifier(finalToken);
+    reportExtraneousModifier(lateToken);
+    reportExtraneousModifier(requiredToken);
+    reportExtraneousModifier(staticToken);
+    reportExtraneousModifier(varToken);
+    return token;
+  }
+
+  /// Parse modifiers for mixin declarations.
+  Token parseMixinModifiers(Token token, Token keyword) {
+    token = _parseModifiers(token);
+    reportTopLevelModifierError(constToken, keyword);
+    reportTopLevelModifierError(externalToken, keyword);
+    reportExtraneousModifier(abstractToken);
+    reportExtraneousModifier(covariantToken);
+    reportExtraneousModifier(finalToken);
+    reportExtraneousModifier(lateToken);
+    reportExtraneousModifier(requiredToken);
+    reportExtraneousModifier(staticToken);
+    reportExtraneousModifier(varToken);
+    return token;
+  }
+
+  /// Parse modifiers for library, import, export, part (of) directives and
+  /// typedef and extension declarations.
+  Token parseTopLevelKeywordModifiers(Token token, Token keyword) {
+    token = _parseModifiers(token);
+    reportTopLevelModifierError(constToken, keyword);
+    reportTopLevelModifierError(externalToken, keyword);
+    reportExtraneousModifier(abstractToken);
+    reportExtraneousModifier(augmentToken);
+    reportExtraneousModifier(covariantToken);
+    reportExtraneousModifier(finalToken);
+    reportExtraneousModifier(lateToken);
+    reportExtraneousModifier(requiredToken);
+    reportExtraneousModifier(staticToken);
+    reportExtraneousModifier(varToken);
+    return token;
+  }
+
   /// Parse modifiers for class methods and fields.
   Token parseClassMemberModifiers(Token token) {
-    token = parseModifiers(token);
+    token = _parseModifiers(token);
     reportExtraneousModifier(requiredToken);
     return token;
   }
@@ -104,7 +169,7 @@
   /// Parse modifiers for formal parameters.
   Token parseFormalParameterModifiers(
       Token token, FormalParameterKind parameterKind, MemberKind memberKind) {
-    token = parseModifiers(token);
+    token = _parseModifiers(token);
 
     if (parameterKind != FormalParameterKind.optionalNamed) {
       reportExtraneousModifier(requiredToken);
@@ -133,8 +198,8 @@
 
   /// Parse modifiers after the `factory` token.
   Token parseModifiersAfterFactory(Token token) {
-    afterFactory = true;
-    token = parseModifiers(token);
+    _afterFactory = true;
+    token = _parseModifiers(token);
     if (abstractToken != null) {
       parser.reportRecoverableError(
           abstractToken!, codes.messageAbstractClassMember);
@@ -145,8 +210,8 @@
   }
 
   /// Parse modifiers for top level functions and fields.
-  Token parseTopLevelModifiers(Token token) {
-    token = parseModifiers(token);
+  Token parseTopLevelMemberModifiers(Token token) {
+    token = _parseModifiers(token);
     reportExtraneousModifier(abstractToken);
     reportExtraneousModifier(covariantToken);
     reportExtraneousModifier(requiredToken);
@@ -156,7 +221,7 @@
 
   /// Parse modifiers for variable declarations.
   Token parseVariableDeclarationModifiers(Token token) {
-    token = parseModifiers(token);
+    token = _parseModifiers(token);
     reportExtraneousModifier(abstractToken);
     reportExtraneousModifier(covariantToken);
     reportExtraneousModifier(externalToken);
@@ -176,34 +241,36 @@
   /// `static` or `covariant`. The first non-null parameter of
   /// [staticOrCovariant], [staticToken], or [covariantToken] will be used,
   /// in that order, and the others ignored.
-  Token parseModifiers(Token token) {
+  Token _parseModifiers(Token token) {
     // Process invalid and out-of-order modifiers
     Token next = token.next!;
     while (true) {
       final String? value = next.stringValue;
       if (isModifier(next)) {
         if (identical('abstract', value)) {
-          token = parseAbstract(token);
+          token = _parseAbstract(token);
+        } else if (identical('augment', value)) {
+          token = _parseAugment(token);
         } else if (identical('const', value)) {
-          token = parseConst(token);
+          token = _parseConst(token);
         } else if (identical('covariant', value)) {
-          token = parseCovariant(token);
+          token = _parseCovariant(token);
         } else if (identical('external', value)) {
-          token = parseExternal(token);
+          token = _parseExternal(token);
         } else if (identical('final', value)) {
-          token = parseFinal(token);
+          token = _parseFinal(token);
         } else if (identical('late', value)) {
-          token = parseLate(token);
+          token = _parseLate(token);
         } else if (identical('required', value)) {
-          token = parseRequired(token);
+          token = _parseRequired(token);
         } else if (identical('static', value)) {
-          token = parseStatic(token);
+          token = _parseStatic(token);
         } else if (identical('var', value)) {
-          token = parseVar(token);
+          token = _parseVar(token);
         } else {
           throw 'Internal Error: Unhandled modifier: $value';
         }
-      } else if (afterFactory && identical('factory', value)) {
+      } else if (_afterFactory && identical('factory', value)) {
         parser.reportRecoverableErrorWithToken(
             next, codes.templateDuplicatedModifier);
         token = next;
@@ -215,7 +282,7 @@
     return token;
   }
 
-  Token parseAbstract(Token token) {
+  Token _parseAbstract(Token token) {
     Token next = token.next!;
     assert(optional('abstract', next));
     if (abstractToken == null) {
@@ -235,13 +302,45 @@
     return next;
   }
 
-  Token parseConst(Token token) {
+  Token _parseAugment(Token token) {
+    Token next = token.next!;
+    assert(optional('augment', next));
+    if (augmentToken == null) {
+      augmentToken = next;
+
+      if (varFinalOrConst != null) {
+        reportModifierOutOfOrder(next, varFinalOrConst!.lexeme);
+      } else if (abstractToken != null) {
+        reportModifierOutOfOrder(next, abstractToken!.lexeme);
+      } else if (constToken != null) {
+        reportModifierOutOfOrder(next, constToken!.lexeme);
+      } else if (covariantToken != null) {
+        reportModifierOutOfOrder(next, covariantToken!.lexeme);
+      } else if (finalToken != null) {
+        reportModifierOutOfOrder(next, finalToken!.lexeme);
+      } else if (lateToken != null) {
+        reportModifierOutOfOrder(next, lateToken!.lexeme);
+      } else if (staticToken != null) {
+        reportModifierOutOfOrder(next, staticToken!.lexeme);
+      } else if (externalToken != null) {
+        reportConflictingModifiers(next, externalToken!);
+      }
+      return next;
+    }
+
+    // Recovery
+    parser.reportRecoverableErrorWithToken(
+        next, codes.templateDuplicatedModifier);
+    return next;
+  }
+
+  Token _parseConst(Token token) {
     Token next = token.next!;
     assert(optional('const', next));
     if (varFinalOrConst == null && covariantToken == null) {
       constToken = next;
 
-      if (afterFactory) {
+      if (_afterFactory) {
         reportModifierOutOfOrder(next, 'factory');
       } else if (lateToken != null) {
         reportConflictingModifiers(next, lateToken!);
@@ -265,13 +364,13 @@
     return next;
   }
 
-  Token parseCovariant(Token token) {
+  Token _parseCovariant(Token token) {
     Token next = token.next!;
     assert(optional('covariant', next));
     if (constToken == null &&
         covariantToken == null &&
         staticToken == null &&
-        !afterFactory) {
+        !_afterFactory) {
       covariantToken = next;
 
       if (varToken != null) {
@@ -288,7 +387,7 @@
     if (covariantToken != null) {
       parser.reportRecoverableErrorWithToken(
           next, codes.templateDuplicatedModifier);
-    } else if (afterFactory) {
+    } else if (_afterFactory) {
       reportExtraneousModifier(next);
     } else if (constToken != null) {
       reportConflictingModifiers(next, constToken!);
@@ -300,13 +399,13 @@
     return next;
   }
 
-  Token parseExternal(Token token) {
+  Token _parseExternal(Token token) {
     Token next = token.next!;
     assert(optional('external', next));
     if (externalToken == null) {
       externalToken = next;
 
-      if (afterFactory) {
+      if (_afterFactory) {
         reportModifierOutOfOrder(next, 'factory');
       } else if (constToken != null) {
         reportModifierOutOfOrder(next, constToken!.lexeme);
@@ -318,6 +417,8 @@
         reportModifierOutOfOrder(next, varFinalOrConst!.lexeme);
       } else if (covariantToken != null) {
         reportModifierOutOfOrder(next, covariantToken!.lexeme);
+      } else if (augmentToken != null) {
+        reportConflictingModifiers(next, augmentToken!);
       }
       return next;
     }
@@ -328,10 +429,10 @@
     return next;
   }
 
-  Token parseFinal(Token token) {
+  Token _parseFinal(Token token) {
     Token next = token.next!;
     assert(optional('final', next));
-    if (varFinalOrConst == null && !afterFactory) {
+    if (varFinalOrConst == null && !_afterFactory) {
       finalToken = next;
       return next;
     }
@@ -340,7 +441,7 @@
     if (finalToken != null) {
       parser.reportRecoverableErrorWithToken(
           next, codes.templateDuplicatedModifier);
-    } else if (afterFactory) {
+    } else if (_afterFactory) {
       reportExtraneousModifier(next);
     } else if (constToken != null) {
       parser.reportRecoverableError(next, codes.messageConstAndFinal);
@@ -354,7 +455,7 @@
     return next;
   }
 
-  Token parseLate(Token token) {
+  Token _parseLate(Token token) {
     Token next = token.next!;
     assert(optional('late', next));
     if (lateToken == null) {
@@ -376,7 +477,7 @@
     return next;
   }
 
-  Token parseRequired(Token token) {
+  Token _parseRequired(Token token) {
     Token next = token.next!;
     assert(optional('required', next));
     if (requiredToken == null) {
@@ -400,10 +501,10 @@
     return next;
   }
 
-  Token parseStatic(Token token) {
+  Token _parseStatic(Token token) {
     Token next = token.next!;
     assert(optional('static', next));
-    if (covariantToken == null && staticToken == null && !afterFactory) {
+    if (covariantToken == null && staticToken == null && !_afterFactory) {
       staticToken = next;
 
       if (constToken != null) {
@@ -424,7 +525,7 @@
     } else if (staticToken != null) {
       parser.reportRecoverableErrorWithToken(
           next, codes.templateDuplicatedModifier);
-    } else if (afterFactory) {
+    } else if (_afterFactory) {
       reportExtraneousModifier(next);
     } else {
       throw 'Internal Error: Unhandled recovery: $next';
@@ -432,10 +533,10 @@
     return next;
   }
 
-  Token parseVar(Token token) {
+  Token _parseVar(Token token) {
     Token next = token.next!;
     assert(optional('var', next));
-    if (varFinalOrConst == null && !afterFactory) {
+    if (varFinalOrConst == null && !_afterFactory) {
       varToken = next;
       return next;
     }
@@ -444,7 +545,7 @@
     if (varToken != null) {
       parser.reportRecoverableErrorWithToken(
           next, codes.templateDuplicatedModifier);
-    } else if (afterFactory) {
+    } else if (_afterFactory) {
       reportExtraneousModifier(next);
     } else if (constToken != null) {
       reportConflictingModifiers(next, constToken!);
@@ -470,6 +571,30 @@
     }
   }
 
+  // Report an error for the given modifier preceding a top level keyword
+  // such as `import` or `class`.
+  void reportTopLevelModifierError(Token? modifier, Token afterModifiers) {
+    if (modifier != null) {
+      if (optional('const', modifier) && optional('class', afterModifiers)) {
+        parser.reportRecoverableError(modifier, codes.messageConstClass);
+      } else if (optional('external', modifier)) {
+        if (optional('class', afterModifiers)) {
+          parser.reportRecoverableError(modifier, codes.messageExternalClass);
+        } else if (optional('enum', afterModifiers)) {
+          parser.reportRecoverableError(modifier, codes.messageExternalEnum);
+        } else if (optional('typedef', afterModifiers)) {
+          parser.reportRecoverableError(modifier, codes.messageExternalTypedef);
+        } else {
+          parser.reportRecoverableErrorWithToken(
+              modifier, codes.templateExtraneousModifier);
+        }
+      } else {
+        parser.reportRecoverableErrorWithToken(
+            modifier, codes.templateExtraneousModifier);
+      }
+    }
+  }
+
   void reportExtraneousModifierInExtension(Token? modifier) {
     if (modifier != null) {
       parser.reportRecoverableErrorWithToken(
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
index 9c693a0..c637b62 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
@@ -89,7 +89,7 @@
 
 import 'member_kind.dart' show MemberKind;
 
-import 'modifier_context.dart' show ModifierRecoveryContext, isModifier;
+import 'modifier_context.dart' show ModifierContext, isModifier;
 
 import 'recovery_listeners.dart'
     show
@@ -494,12 +494,8 @@
     token = parseMetadataStar(token);
     Token next = token.next!;
     if (next.isTopLevelKeyword) {
-      return parseTopLevelKeywordDeclaration(
-          /* start = */ token,
-          /* keyword = */ next,
-          /* macroToken = */ null,
-          /* augmentToken = */ null,
-          directiveState);
+      return parseTopLevelKeywordDeclaration(/* start = */ token,
+          /* keyword = */ next, /* macroToken = */ null, directiveState);
     }
     Token start = token;
     // Skip modifiers to find a top level keyword or identifier
@@ -519,27 +515,15 @@
     }
     next = token.next!;
     Token? macroToken;
-    Token? augmentToken;
-    // TODO(johnniwinther): Should we support/recognize the combination
-    // of 'macro' and 'augment'.
     if (next.isIdentifier &&
         next.lexeme == 'macro' &&
         optional('class', next.next!)) {
       macroToken = next;
       next = next.next!;
-    } else if (next.isIdentifier &&
-        next.lexeme == 'augment' &&
-        optional('class', next.next!)) {
-      augmentToken = next;
-      next = next.next!;
     }
     if (next.isTopLevelKeyword) {
-      return parseTopLevelKeywordDeclaration(
-          /* start = */ start,
-          /* keyword = */ next,
-          /* macroToken = */ macroToken,
-          /* augmentToken =*/ augmentToken,
-          directiveState);
+      return parseTopLevelKeywordDeclaration(/* start = */ start,
+          /* keyword = */ next, /* macroToken = */ macroToken, directiveState);
     } else if (next.isKeywordOrIdentifier) {
       // TODO(danrubel): improve parseTopLevelMember
       // so that we don't parse modifiers twice.
@@ -565,74 +549,24 @@
     return parseInvalidTopLevelDeclaration(token);
   }
 
-  /// Parse the modifiers before the `class` keyword.
-  /// Return the first `abstract` modifier or `null` if not found.
-  Token? parseClassDeclarationModifiers(Token start, Token keyword) {
-    Token modifier = start.next!;
-    while (modifier != keyword) {
-      if (optional('abstract', modifier)) {
-        parseTopLevelKeywordModifiers(modifier, keyword);
-        return modifier;
-      } else {
-        // Recovery
-        reportTopLevelModifierError(modifier, keyword);
-      }
-      modifier = modifier.next!;
-    }
-    return null;
-  }
-
-  /// Report errors on any modifiers before the specified keyword.
-  void parseTopLevelKeywordModifiers(Token start, Token keyword) {
-    Token modifier = start.next!;
-    while (modifier != keyword) {
-      // Recovery
-      reportTopLevelModifierError(modifier, keyword);
-      modifier = modifier.next!;
-    }
-  }
-
-  // Report an error for the given modifier preceding a top level keyword
-  // such as `import` or `class`.
-  void reportTopLevelModifierError(Token modifier, Token afterModifiers) {
-    if (optional('const', modifier) && optional('class', afterModifiers)) {
-      reportRecoverableError(modifier, codes.messageConstClass);
-    } else if (optional('external', modifier)) {
-      if (optional('class', afterModifiers)) {
-        reportRecoverableError(modifier, codes.messageExternalClass);
-      } else if (optional('enum', afterModifiers)) {
-        reportRecoverableError(modifier, codes.messageExternalEnum);
-      } else if (optional('typedef', afterModifiers)) {
-        reportRecoverableError(modifier, codes.messageExternalTypedef);
-      } else {
-        reportRecoverableErrorWithToken(
-            modifier, codes.templateExtraneousModifier);
-      }
-    } else {
-      reportRecoverableErrorWithToken(
-          modifier, codes.templateExtraneousModifier);
-    }
-  }
-
   /// Parse any top-level declaration that begins with a keyword.
   /// [start] is the token before any modifiers preceding [keyword].
-  Token parseTopLevelKeywordDeclaration(
-      Token start,
-      Token keyword,
-      Token? macroToken,
-      Token? augmentToken,
-      DirectiveContext? directiveState) {
+  Token parseTopLevelKeywordDeclaration(Token start, Token keyword,
+      Token? macroToken, DirectiveContext? directiveState) {
     assert(keyword.isTopLevelKeyword);
     final String? value = keyword.stringValue;
     if (identical(value, 'class')) {
       directiveState?.checkDeclaration();
-      Token? abstractToken = parseClassDeclarationModifiers(
-          start, macroToken ?? augmentToken ?? keyword);
+      ModifierContext context = new ModifierContext(this);
+      context.parseClassModifiers(start, keyword);
+      Token? abstractToken = context.abstractToken;
+      Token? augmentToken = context.augmentToken;
       return parseClassOrNamedMixinApplication(
           abstractToken, macroToken, augmentToken, keyword);
     } else if (identical(value, 'enum')) {
       directiveState?.checkDeclaration();
-      parseTopLevelKeywordModifiers(start, keyword);
+      ModifierContext context = new ModifierContext(this);
+      context.parseEnumModifiers(start, keyword);
       return parseEnum(keyword);
     } else {
       // The remaining top level keywords are built-in keywords
@@ -656,25 +590,32 @@
         directiveState?.checkDeclaration();
         return parseTopLevelMemberImpl(start);
       } else {
-        parseTopLevelKeywordModifiers(start, keyword);
+        ModifierContext context = new ModifierContext(this);
         if (identical(value, 'import')) {
+          context.parseTopLevelKeywordModifiers(start, keyword);
           directiveState?.checkImport(this, keyword);
           return parseImport(keyword);
         } else if (identical(value, 'export')) {
+          context.parseTopLevelKeywordModifiers(start, keyword);
           directiveState?.checkExport(this, keyword);
           return parseExport(keyword);
         } else if (identical(value, 'typedef')) {
+          context.parseTopLevelKeywordModifiers(start, keyword);
           directiveState?.checkDeclaration();
           return parseTypedef(keyword);
         } else if (identical(value, 'mixin')) {
+          context.parseMixinModifiers(start, keyword);
           directiveState?.checkDeclaration();
-          return parseMixin(keyword);
+          return parseMixin(context.augmentToken, keyword);
         } else if (identical(value, 'extension')) {
+          context.parseTopLevelKeywordModifiers(start, keyword);
           directiveState?.checkDeclaration();
           return parseExtension(keyword);
         } else if (identical(value, 'part')) {
+          context.parseTopLevelKeywordModifiers(start, keyword);
           return parsePartOrPartOf(keyword, directiveState);
         } else if (identical(value, 'library')) {
+          context.parseTopLevelKeywordModifiers(start, keyword);
           directiveState?.checkLibrary(this, keyword);
           return parseLibraryName(keyword);
         }
@@ -1605,7 +1546,7 @@
 
           if (isModifier(next)) {
             // Recovery
-            ModifierRecoveryContext context = new ModifierRecoveryContext(this)
+            ModifierContext context = new ModifierContext(this)
               ..covariantToken = covariantToken
               ..requiredToken = requiredToken
               ..varFinalOrConst = varFinalOrConst;
@@ -2315,11 +2256,11 @@
   ///
   /// ```
   /// mixinDeclaration:
-  ///   metadata? 'mixin' [SimpleIdentifier] [TypeParameterList]?
+  ///   metadata? 'augment'? 'mixin' [SimpleIdentifier] [TypeParameterList]?
   ///        [OnClause]? [ImplementsClause]? '{' [ClassMember]* '}'
   /// ;
   /// ```
-  Token parseMixin(Token mixinKeyword) {
+  Token parseMixin(Token? augmentToken, Token mixinKeyword) {
     assert(optional('mixin', mixinKeyword));
     listener.beginClassOrMixinOrNamedMixinApplicationPrelude(mixinKeyword);
     Token name = ensureIdentifier(
@@ -2327,7 +2268,7 @@
     Token headerStart = computeTypeParamOrArg(
             name, /* inDeclaration = */ true, /* allowsVariance = */ true)
         .parseVariables(name, this);
-    listener.beginMixinDeclaration(mixinKeyword, name);
+    listener.beginMixinDeclaration(augmentToken, mixinKeyword, name);
     Token token = parseMixinHeaderOpt(headerStart, mixinKeyword);
     if (!optional('{', token.next!)) {
       // Recovery
@@ -2766,6 +2707,7 @@
     }
 
     Token? externalToken;
+    Token? augmentToken;
     Token? lateToken;
     Token? varFinalOrConst;
 
@@ -2773,6 +2715,9 @@
       if (optional('external', next)) {
         externalToken = token = next;
         next = token.next!;
+      } else if (optional('augment', next)) {
+        augmentToken = token = next;
+        next = token.next!;
       }
       if (isModifier(next)) {
         if (optional('final', next)) {
@@ -2801,14 +2746,16 @@
             // If another `var`, `final`, or `const` then fall through
             // to parse that as part of the next top level declaration.
           } else {
-            ModifierRecoveryContext context = new ModifierRecoveryContext(this)
+            ModifierContext context = new ModifierContext(this)
               ..externalToken = externalToken
+              ..augmentToken = augmentToken
               ..lateToken = lateToken
               ..varFinalOrConst = varFinalOrConst;
 
-            token = context.parseTopLevelModifiers(token);
+            token = context.parseTopLevelMemberModifiers(token);
             next = token.next!;
 
+            augmentToken = context.augmentToken;
             externalToken = context.externalToken;
             lateToken = context.lateToken;
             varFinalOrConst = context.varFinalOrConst;
@@ -2933,8 +2880,8 @@
         reportRecoverableErrorWithToken(
             lateToken, codes.templateExtraneousModifier);
       }
-      return parseTopLevelMethod(beforeStart, externalToken, beforeType,
-          typeInfo, getOrSet, token.next!, nameIsRecovered);
+      return parseTopLevelMethod(beforeStart, augmentToken, externalToken,
+          beforeType, typeInfo, getOrSet, token.next!, nameIsRecovered);
     }
 
     if (getOrSet != null) {
@@ -2944,6 +2891,7 @@
     return parseFields(
         beforeStart,
         /* abstractToken = */ null,
+        augmentToken,
         externalToken,
         /* staticToken = */ null,
         /* covariantToken = */ null,
@@ -2960,6 +2908,7 @@
   Token parseFields(
       Token beforeStart,
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -2971,8 +2920,8 @@
       DeclarationKind kind,
       String? enclosingDeclarationName,
       bool nameIsRecovered) {
-    listener.beginFields(kind, abstractToken, externalToken, staticToken,
-        covariantToken, lateToken, varFinalOrConst, beforeStart);
+    listener.beginFields(kind, abstractToken, augmentToken, externalToken,
+        staticToken, covariantToken, lateToken, varFinalOrConst, beforeStart);
 
     // Covariant affects only the setter and final fields do not have a setter,
     // unless it's a late field (dartbug.com/40805).
@@ -3019,12 +2968,28 @@
     }
 
     int fieldCount = 1;
-    token = parseFieldInitializerOpt(name, name, lateToken, abstractToken,
-        externalToken, varFinalOrConst, kind, enclosingDeclarationName);
+    token = parseFieldInitializerOpt(
+        name,
+        name,
+        lateToken,
+        abstractToken,
+        augmentToken,
+        externalToken,
+        varFinalOrConst,
+        kind,
+        enclosingDeclarationName);
     while (optional(',', token.next!)) {
       name = ensureIdentifier(token.next!, context);
-      token = parseFieldInitializerOpt(name, name, lateToken, abstractToken,
-          externalToken, varFinalOrConst, kind, enclosingDeclarationName);
+      token = parseFieldInitializerOpt(
+          name,
+          name,
+          lateToken,
+          abstractToken,
+          augmentToken,
+          externalToken,
+          varFinalOrConst,
+          kind,
+          enclosingDeclarationName);
       ++fieldCount;
     }
     Token semicolon = token.next!;
@@ -3057,6 +3022,7 @@
       case DeclarationKind.Class:
         listener.endClassFields(
             abstractToken,
+            augmentToken,
             externalToken,
             staticToken,
             covariantToken,
@@ -3069,6 +3035,7 @@
       case DeclarationKind.Mixin:
         listener.endMixinFields(
             abstractToken,
+            augmentToken,
             externalToken,
             staticToken,
             covariantToken,
@@ -3089,6 +3056,7 @@
         }
         listener.endExtensionFields(
             abstractToken,
+            augmentToken,
             externalToken,
             staticToken,
             covariantToken,
@@ -3101,6 +3069,7 @@
       case DeclarationKind.Enum:
         listener.endEnumFields(
             abstractToken,
+            augmentToken,
             externalToken,
             staticToken,
             covariantToken,
@@ -3116,13 +3085,14 @@
 
   Token parseTopLevelMethod(
       Token beforeStart,
+      Token? augmentToken,
       Token? externalToken,
       Token beforeType,
       TypeInfo typeInfo,
       Token? getOrSet,
       Token name,
       bool nameIsRecovered) {
-    listener.beginTopLevelMethod(beforeStart, externalToken);
+    listener.beginTopLevelMethod(beforeStart, augmentToken, externalToken);
 
     Token token = typeInfo.parseType(beforeType, this);
     assert(token.next == (getOrSet ?? name) || token.next!.isEof);
@@ -3199,6 +3169,7 @@
       Token name,
       Token? lateToken,
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? varFinalOrConst,
       DeclarationKind kind,
@@ -3283,26 +3254,22 @@
           if (!optional('(', next)) {
             break;
           }
-          // Looks like assert expression ... fall through to insert comma
-        } else if (!next.isIdentifier && !optional('this', next)) {
-          // An identifier that wasn't an initializer. Break.
-          break;
-        } else {
-          if (optional('this', next)) {
-            next = next.next!;
-            if (!optional('.', next)) {
-              break;
-            }
-            next = next.next!;
-            if (!next.isIdentifier && !optional('assert', next)) {
-              break;
-            }
+          // Looks like assert expression ... fall through to insert comma.
+        } else if (optional('this', next) || optional('super', next)) {
+          next = next.next!;
+          if (!optional('(', next) && !optional('.', next)) {
+            break;
           }
+          // `this` or `super` followed by either `.` or `(`.
+          // Fall through to insert comma.
+        } else if (next.isIdentifier) {
           next = next.next!;
           if (!optional('=', next)) {
             break;
           }
-          // Looks like field assignment... fall through to insert comma
+          // Looks like field assignment... fall through to insert comma.
+        } else {
+          break;
         }
         // TODO(danrubel): Consider enhancing this to indicate that we are
         // expecting one of `,` or `;` or `{`
@@ -3758,6 +3725,7 @@
 
     Token? covariantToken;
     Token? abstractToken;
+    Token? augmentToken;
     Token? externalToken;
     Token? lateToken;
     Token? staticToken;
@@ -3768,6 +3736,9 @@
       if (optional('external', next)) {
         externalToken = token = next;
         next = token.next!;
+      } else if (optional('augment', next)) {
+        augmentToken = token = next;
+        next = token.next!;
       } else if (optional('abstract', next)) {
         abstractToken = token = next;
         next = token.next!;
@@ -3799,8 +3770,9 @@
             }
           }
           if (isModifier(next)) {
-            ModifierRecoveryContext context = new ModifierRecoveryContext(this)
+            ModifierContext context = new ModifierContext(this)
               ..covariantToken = covariantToken
+              ..augmentToken = augmentToken
               ..externalToken = externalToken
               ..lateToken = lateToken
               ..staticToken = staticToken
@@ -3945,6 +3917,7 @@
             token,
             beforeStart,
             abstractToken,
+            augmentToken,
             externalToken,
             staticToken,
             covariantToken,
@@ -4022,6 +3995,7 @@
       token = parseFields(
           beforeStart,
           abstractToken,
+          augmentToken,
           externalToken,
           staticToken,
           covariantToken,
@@ -4315,7 +4289,7 @@
 
     if (!isValidTypeReference(token.next!)) {
       // Recovery
-      ModifierRecoveryContext context = new ModifierRecoveryContext(this)
+      ModifierContext context = new ModifierContext(this)
         ..externalToken = externalToken
         ..staticOrCovariant = staticOrCovariant
         ..varFinalOrConst = varFinalOrConst;
@@ -6807,7 +6781,7 @@
 
       if (isModifier(next)) {
         // Recovery
-        ModifierRecoveryContext context = new ModifierRecoveryContext(this)
+        ModifierContext context = new ModifierContext(this)
           ..lateToken = lateToken
           ..varFinalOrConst = varFinalOrConst;
 
@@ -6848,7 +6822,7 @@
       beforeType = start = beforeType.next!;
 
       // The below doesn't parse modifiers, so we need to do it here.
-      ModifierRecoveryContext context = new ModifierRecoveryContext(this);
+      ModifierContext context = new ModifierContext(this);
       beforeType =
           start = context.parseVariableDeclarationModifiers(beforeType);
       varFinalOrConst = context.varFinalOrConst;
@@ -6895,7 +6869,7 @@
         typeInfo.couldBeExpression) {
       assert(optional('?', token));
       assert(next.isKeywordOrIdentifier);
-      if (!next.isIdentifier) {
+      if (!looksLikeName(next)) {
         reportRecoverableError(
             next, codes.templateExpectedIdentifier.withArguments(next));
         next = rewriter.insertSyntheticIdentifier(next);
@@ -8001,6 +7975,7 @@
       Token token,
       Token beforeStart,
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -8065,6 +8040,7 @@
       token = parseFields(
           beforeStart,
           abstractToken,
+          augmentToken,
           externalToken,
           staticToken,
           covariantToken,
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/type_info.dart b/pkg/_fe_analyzer_shared/lib/src/parser/type_info.dart
index 9e76440..90c69c8 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/type_info.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/type_info.dart
@@ -252,17 +252,6 @@
   assert(typeParamOrArg == noTypeParamOrArg);
   next = next.next!;
 
-  // TODO(scheglov) This is a hack to partially fix.
-  // https://github.com/dart-lang/sdk/issues/47951
-  if (optional('?', next) &&
-      optional('super', next.next!) &&
-      optional('.', next.next!.next!)) {
-    return simpleNullableType;
-  }
-  if (optional('super', next) && optional('.', next.next!)) {
-    return simpleType;
-  }
-
   if (optional('.', next)) {
     next = next.next!;
     if (isValidTypeReference(next)) {
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/type_info_impl.dart b/pkg/_fe_analyzer_shared/lib/src/parser/type_info_impl.dart
index 099319f..07d1752 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/type_info_impl.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/type_info_impl.dart
@@ -451,6 +451,7 @@
 bool looksLikeName(Token token) {
   return token.kind == IDENTIFIER_TOKEN ||
       optional('this', token) ||
+      optional('super', token) ||
       (token.isIdentifier &&
           // Although `typedef` is a legal identifier,
           // type `typedef` identifier is not legal and in this situation
@@ -794,7 +795,9 @@
         if (optional('?', next)) {
           next = next.next!;
         }
-        if (!(next.isIdentifier || optional('this', next))) {
+        if (!(next.isIdentifier ||
+            optional('this', next) ||
+            optional('super', next))) {
           break; // `Function` used as the name in a function declaration.
         }
       }
diff --git a/pkg/_fe_analyzer_shared/lib/src/scanner/abstract_scanner.dart b/pkg/_fe_analyzer_shared/lib/src/scanner/abstract_scanner.dart
index 7f70b75..8c6a343 100644
--- a/pkg/_fe_analyzer_shared/lib/src/scanner/abstract_scanner.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/scanner/abstract_scanner.dart
@@ -73,6 +73,9 @@
   /// and https://github.com/dart-lang/language/issues/60
   bool _enableTripleShift = false;
 
+  /// If `true`, 'augment' is treated as a built-in identifier.
+  bool _forAugmentationLibrary = false;
+
   /**
    * The string offset for the next token that will be created.
    *
@@ -159,6 +162,7 @@
       _enableExtensionMethods = config.enableExtensionMethods;
       _enableNonNullable = config.enableNonNullable;
       _enableTripleShift = config.enableTripleShift;
+      _forAugmentationLibrary = config.forAugmentationLibrary;
     }
   }
 
@@ -1619,6 +1623,9 @@
         (keyword == Keyword.LATE || keyword == Keyword.REQUIRED)) {
       return tokenizeIdentifier(next, start, allowDollar);
     }
+    if (!_forAugmentationLibrary && keyword == Keyword.AUGMENT) {
+      return tokenizeIdentifier(next, start, allowDollar);
+    }
     if (($A <= next && next <= $Z) ||
         ($0 <= next && next <= $9) ||
         identical(next, $_) ||
@@ -2055,13 +2062,18 @@
   /// and https://github.com/dart-lang/language/issues/60
   final bool enableTripleShift;
 
+  /// If `true`, 'augment' is treated as a built-in identifier.
+  final bool forAugmentationLibrary;
+
   const ScannerConfiguration({
     bool enableExtensionMethods = false,
     bool enableNonNullable = false,
     bool enableTripleShift = false,
+    bool forAugmentationLibrary = false,
   })  : this.enableExtensionMethods = enableExtensionMethods,
         this.enableNonNullable = enableNonNullable,
-        this.enableTripleShift = enableTripleShift;
+        this.enableTripleShift = enableTripleShift,
+        this.forAugmentationLibrary = forAugmentationLibrary;
 }
 
 bool _isIdentifierChar(int next, bool allowDollar) {
diff --git a/pkg/_fe_analyzer_shared/lib/src/scanner/token.dart b/pkg/_fe_analyzer_shared/lib/src/scanner/token.dart
index 6573bbc..d4225fb 100644
--- a/pkg/_fe_analyzer_shared/lib/src/scanner/token.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/scanner/token.dart
@@ -144,6 +144,10 @@
   static const Keyword ASYNC =
       const Keyword("async", "ASYNC", KeywordStyle.pseudo);
 
+  static const Keyword AUGMENT = const Keyword(
+      "augment", "AUGMENT", KeywordStyle.builtIn,
+      isModifier: true);
+
   static const Keyword AWAIT =
       const Keyword("await", "AWAIT", KeywordStyle.pseudo);
 
@@ -345,6 +349,7 @@
     AS,
     ASSERT,
     ASYNC,
+    AUGMENT,
     AWAIT,
     BREAK,
     CASE,
@@ -1091,7 +1096,8 @@
    * Return the token with the smallest offset, or `null` if all of the
    * tokens are `null`.
    */
-  static Token? lexicallyFirst([Token? t1, Token? t2, Token? t3, Token? t4]) {
+  static Token? lexicallyFirst(
+      [Token? t1, Token? t2, Token? t3, Token? t4, Token? t5]) {
     Token? result = t1;
     if (result == null || t2 != null && t2.offset < result.offset) {
       result = t2;
@@ -1102,6 +1108,9 @@
     if (result == null || t4 != null && t4.offset < result.offset) {
       result = t4;
     }
+    if (result == null || t5 != null && t5.offset < result.offset) {
+      result = t5;
+    }
     return result;
   }
 }
diff --git a/pkg/analysis_server/doc/api.html b/pkg/analysis_server/doc/api.html
index 7b19889..5423376 100644
--- a/pkg/analysis_server/doc/api.html
+++ b/pkg/analysis_server/doc/api.html
@@ -109,7 +109,7 @@
 <body>
 <h1>Analysis Server API Specification</h1>
 <h1 style="color:#999999">Version
-  1.32.9
+  1.32.10
 </h1>
 <p>
   This document contains a specification of the API provided by the
@@ -236,6 +236,10 @@
   ignoring the item or treating it with some default/fallback handling.
 </p>
 <h3>Changelog</h3>
+<h4>1.32.10</h4>
+<ul>
+  <li>The <tt>MOVE_FILE</tt> refactor now supports moving/renaming folders.</li>
+</ul>
 <h4>1.32.8</h4>
 <ul>
   <li>Added <tt>server.cancelRequest</tt> to allow clients to request cancellation
@@ -6067,10 +6071,15 @@
         </p>
       </dd></dl></dd><dt class="refactoring">MOVE_FILE</dt><dd>
     <p>
-      Move the given file and update all of the references to that file
-      and from it. The move operation is supported in general case - for
-      renaming a file in the same folder, moving it to a different folder
-      or both.
+      Move the given file or folder and update all of the references to
+      and from it. The move operation is supported in general case -
+      for renaming an item in the same folder, moving it to a different
+      folder or both.
+
+      Moving or renaming large folders may take time and clients should
+      consider showing an indicator to the user with the ability to
+      cancel the request (which can be done using
+      <tt>server.cancelRequest</tt>).
     </p>
     <p>
       The refactoring must be activated before an actual file moving
diff --git a/pkg/analysis_server/lib/protocol/protocol_constants.dart b/pkg/analysis_server/lib/protocol/protocol_constants.dart
index 6847dd0..e8a4e7e 100644
--- a/pkg/analysis_server/lib/protocol/protocol_constants.dart
+++ b/pkg/analysis_server/lib/protocol/protocol_constants.dart
@@ -6,7 +6,7 @@
 // To regenerate the file, use the script
 // "pkg/analysis_server/tool/spec/generate_files".
 
-const String PROTOCOL_VERSION = '1.32.9';
+const String PROTOCOL_VERSION = '1.32.10';
 
 const String ANALYSIS_NOTIFICATION_ANALYZED_FILES = 'analysis.analyzedFiles';
 const String ANALYSIS_NOTIFICATION_ANALYZED_FILES_DIRECTORIES = 'directories';
diff --git a/pkg/analysis_server/lib/src/edit/edit_domain.dart b/pkg/analysis_server/lib/src/edit/edit_domain.dart
index 655d9d9..eeda336 100644
--- a/pkg/analysis_server/lib/src/edit/edit_domain.dart
+++ b/pkg/analysis_server/lib/src/edit/edit_domain.dart
@@ -95,15 +95,16 @@
         }
       }
 
-      var workspace = DartChangeWorkspace(server.currentSessions);
-      var processor = BulkFixProcessor(server.instrumentationService, workspace,
-          useConfigFiles: params.inTestMode ?? false);
-
       var collection = AnalysisContextCollectionImpl(
         includedPaths: params.included,
         resourceProvider: server.resourceProvider,
         sdkPath: server.sdkPath,
       );
+      var workspace = DartChangeWorkspace(
+          collection.contexts.map((c) => c.currentSession).toList());
+      var processor = BulkFixProcessor(server.instrumentationService, workspace,
+          useConfigFiles: params.inTestMode ?? false);
+
       var changeBuilder = await processor.fixErrors(collection.contexts);
 
       var response = EditBulkFixesResult(
@@ -355,7 +356,7 @@
         getFixes(request);
         return Response.DELAYED_RESPONSE;
       } else if (requestName == EDIT_REQUEST_GET_REFACTORING) {
-        return _getRefactoring(request);
+        return _getRefactoring(request, cancellationToken);
       } else if (requestName == EDIT_REQUEST_IMPORT_ELEMENTS) {
         importElements(request);
         return Response.DELAYED_RESPONSE;
@@ -865,7 +866,8 @@
     }
   }
 
-  Response _getRefactoring(Request request) {
+  Response _getRefactoring(
+      Request request, CancellationToken cancellationToken) {
     final refactoringManager = this.refactoringManager;
     if (refactoringManager == null) {
       return Response.unsupportedFeature(request.id, 'Search is not enabled.');
@@ -874,7 +876,7 @@
       refactoringManager.cancel();
       _newRefactoringManager();
     }
-    refactoringManager.getRefactoring(request);
+    refactoringManager.getRefactoring(request, cancellationToken);
     return Response.DELAYED_RESPONSE;
   }
 
@@ -973,7 +975,7 @@
     _reset();
   }
 
-  void getRefactoring(Request _request) {
+  void getRefactoring(Request _request, CancellationToken cancellationToken) {
     // prepare for processing the request
     request = _request;
     final result = this.result = EditGetRefactoringResult(
@@ -990,7 +992,8 @@
         ?.sendEvent('refactor', params.kind.name.toLowerCase());
 
     runZonedGuarded(() async {
-      await _init(params.kind, file, params.offset, params.length);
+      await _init(
+          params.kind, file, params.offset, params.length, cancellationToken);
       if (initStatus.hasFatalError) {
         feedback = null;
         _sendResultResponse();
@@ -1076,8 +1079,8 @@
     }
   }
 
-  Future<void> _createRefactoringFromKind(
-      String file, int offset, int length) async {
+  Future<void> _createRefactoringFromKind(String file, int offset, int length,
+      CancellationToken cancellationToken) async {
     if (kind == RefactoringKind.CONVERT_GETTER_TO_METHOD) {
       var resolvedUnit = await server.getResolvedUnit(file);
       if (resolvedUnit != null) {
@@ -1144,11 +1147,9 @@
         );
       }
     } else if (kind == RefactoringKind.MOVE_FILE) {
-      var resolvedUnit = await server.getResolvedUnit(file);
-      if (resolvedUnit != null) {
-        refactoring = MoveFileRefactoring(
-            server.resourceProvider, refactoringWorkspace, resolvedUnit, file);
-      }
+      refactoring = MoveFileRefactoring(
+          server.resourceProvider, refactoringWorkspace, file)
+        ..cancellationToken = cancellationToken;
     } else if (kind == RefactoringKind.RENAME) {
       var resolvedUnit = await server.getResolvedUnit(file);
       if (resolvedUnit != null) {
@@ -1171,8 +1172,8 @@
 
   /// Initializes this context to perform a refactoring with the specified
   /// parameters. The existing [Refactoring] is reused or created as needed.
-  Future _init(
-      RefactoringKind kind, String file, int offset, int length) async {
+  Future _init(RefactoringKind kind, String file, int offset, int length,
+      CancellationToken cancellationToken) async {
     // check if we can continue with the existing Refactoring instance
     if (this.kind == kind &&
         this.file == file &&
@@ -1191,7 +1192,7 @@
       throw 'A simulated refactoring exception - init.';
     }
     // create a new Refactoring instance
-    await _createRefactoringFromKind(file, offset, length);
+    await _createRefactoringFromKind(file, offset, length, cancellationToken);
     final refactoring = this.refactoring;
     if (refactoring == null) {
       initStatus = RefactoringStatus.fatal('Unable to create a refactoring');
diff --git a/pkg/analysis_server/lib/src/lsp/handlers/handler_completion.dart b/pkg/analysis_server/lib/src/lsp/handlers/handler_completion.dart
index a91f9fd..f67b886 100644
--- a/pkg/analysis_server/lib/src/lsp/handlers/handler_completion.dart
+++ b/pkg/analysis_server/lib/src/lsp/handlers/handler_completion.dart
@@ -465,8 +465,9 @@
           final fuzzyMatcher =
               FuzzyMatcher(fuzzyPattern, matchStyle: MatchStyle.TEXT);
 
-          final matchingResults =
-              results.where((e) => fuzzyMatcher.score(e.label) > 0).toList();
+          final matchingResults = results
+              .where((e) => fuzzyMatcher.score(e.filterText ?? e.label) > 0)
+              .toList();
 
           completionPerformance.suggestionCount = results.length;
 
diff --git a/pkg/analysis_server/lib/src/lsp/handlers/handler_will_rename_files.dart b/pkg/analysis_server/lib/src/lsp/handlers/handler_will_rename_files.dart
index d08152f..6cbcd6c 100644
--- a/pkg/analysis_server/lib/src/lsp/handlers/handler_will_rename_files.dart
+++ b/pkg/analysis_server/lib/src/lsp/handlers/handler_will_rename_files.dart
@@ -23,7 +23,10 @@
   Future<ErrorOr<WorkspaceEdit?>> handle(
       RenameFilesParams params, CancellationToken token) async {
     final files = params.files;
-    // For performance reasons, only single-file rename/moves are currently supported.
+    // Only single-file rename/moves are currently supported.
+    // TODO(dantup): Tweak this when VS Code can correctly pass us cancellation
+    // requests to not check for .dart to also support folders (although we
+    // may still only support a single entry initially).
     if (files.length > 1 || files.any((f) => !f.oldUri.endsWith('.dart'))) {
       return success(null);
     }
@@ -31,20 +34,17 @@
     final file = files.single;
     final oldPath = pathOfUri(Uri.tryParse(file.oldUri));
     final newPath = pathOfUri(Uri.tryParse(file.newUri));
+
     return oldPath.mapResult((oldPath) =>
-        newPath.mapResult((newPath) => _renameFile(oldPath, newPath)));
+        newPath.mapResult((newPath) => _renameFile(oldPath, newPath, token)));
   }
 
   Future<ErrorOr<WorkspaceEdit?>> _renameFile(
-      String oldPath, String newPath) async {
-    final resolvedUnit = await server.getResolvedUnit(oldPath);
-    if (resolvedUnit == null) {
-      return success(null);
-    }
-
-    final refactoring = MoveFileRefactoring(server.resourceProvider,
-        server.refactoringWorkspace, resolvedUnit, oldPath)
-      ..newFile = newPath;
+      String oldPath, String newPath, CancellationToken token) async {
+    final refactoring = MoveFileRefactoring(
+        server.resourceProvider, server.refactoringWorkspace, oldPath)
+      ..newFile = newPath
+      ..cancellationToken = token;
 
     // If we're unable to update imports for a rename, we should silently do
     // nothing rather than interrupt the users file rename with an error.
diff --git a/pkg/analysis_server/lib/src/services/refactoring/move_file.dart b/pkg/analysis_server/lib/src/services/refactoring/move_file.dart
index f3cae42..caa3706 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/move_file.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/move_file.dart
@@ -7,6 +7,7 @@
 import 'package:analysis_server/src/services/refactoring/refactoring.dart';
 import 'package:analysis_server/src/services/refactoring/refactoring_internal.dart';
 import 'package:analyzer/dart/analysis/results.dart';
+import 'package:analyzer/dart/analysis/session.dart';
 import 'package:analyzer/dart/ast/ast.dart';
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/src/dart/analysis/driver.dart';
@@ -22,16 +23,16 @@
   final ResourceProvider resourceProvider;
   final pathos.Context pathContext;
   final RefactoringWorkspace refactoringWorkspace;
-  final ResolvedUnitResult resolvedUnit;
   late AnalysisDriver driver;
+  late AnalysisSession _session;
 
   late String oldFile;
   late String newFile;
 
   final packagePrefixedStringPattern = RegExp(r'''^r?['"]+package:''');
 
-  MoveFileRefactoringImpl(this.resourceProvider, this.refactoringWorkspace,
-      this.resolvedUnit, this.oldFile)
+  MoveFileRefactoringImpl(
+      this.resourceProvider, this.refactoringWorkspace, this.oldFile)
       : pathContext = resourceProvider.pathContext;
 
   @override
@@ -54,7 +55,8 @@
     }
 
     driver = drivers.first;
-    if (!driver.resourceProvider.getFile(oldFile).exists) {
+    _session = driver.currentSession;
+    if (!resourceProvider.getResource(oldFile).exists) {
       return RefactoringStatus.fatal('$oldFile does not exist.');
     }
 
@@ -68,24 +70,53 @@
 
   @override
   Future<SourceChange> createChange() async {
-    var changeBuilder = ChangeBuilder(session: resolvedUnit.session);
+    var changeBuilder = ChangeBuilder(session: _session);
+
+    final resource = resourceProvider.getResource(oldFile);
+
+    try {
+      await _appendChangesForResource(changeBuilder, resource, newFile);
+    } on InconsistentAnalysisException {
+      // If an InconsistentAnalysisException occurs, it's likely the user
+      // modified the source and is no longer interested in the results.
+      return SourceChange('Refactor cancelled by file modifications');
+    }
+
+    // If cancellation was requested the results may be incomplete so return
+    // a new empty change instead of a partial one with a descriptive name
+    // so it's clear from any logs that cancellation was processed.
+    if (isCancellationRequested) {
+      return SourceChange('Refactor cancelled');
+    }
+
+    return changeBuilder.sourceChange;
+  }
+
+  Future<void> _appendChangeForFile(
+      ChangeBuilder changeBuilder, File file, String newPath) async {
+    var oldPath = file.path;
+    var oldDir = pathContext.dirname(oldPath);
+    var newDir = pathContext.dirname(newPath);
+
+    final resolvedUnit = await _session.getResolvedUnit(file.path);
+    if (resolvedUnit is! ResolvedUnitResult) {
+      return;
+    }
+
     var element = resolvedUnit.unit.declaredElement;
     if (element == null) {
-      return changeBuilder.sourceChange;
+      return;
     }
 
     var libraryElement = element.library;
 
-    final oldDir = pathContext.dirname(oldFile);
-    final newDir = pathContext.dirname(newFile);
-
     // If this element is a library, update outgoing references inside the file.
     if (element == libraryElement.definingCompilationUnit) {
       // Handle part-of directives in this library
       var libraryResult = await driver.currentSession
           .getResolvedLibraryByElement(libraryElement);
       if (libraryResult is! ResolvedLibraryResult) {
-        return changeBuilder.sourceChange;
+        return;
       }
       var definingUnitResult = libraryResult.units.first;
       for (var result in libraryResult.units) {
@@ -99,9 +130,7 @@
             await changeBuilder.addDartFileEdit(
                 result.unit.declaredElement!.source.fullName, (builder) {
               partOfs.forEach((uri) {
-                var newLocation =
-                    pathContext.join(newDir, pathos.basename(newFile));
-                var newUri = _getRelativeUri(newLocation, oldDir);
+                var newUri = _getRelativeUri(newPath, oldDir);
                 builder.addSimpleReplacement(
                     SourceRange(uri.offset, uri.length), "'$newUri'");
               });
@@ -145,27 +174,41 @@
     var references = getSourceReferences(matches);
     for (var reference in references) {
       await changeBuilder.addDartFileEdit(reference.file, (builder) {
-        var newUri = _computeNewUri(reference);
+        var newUri = _computeNewUri(reference, newPath);
         builder.addSimpleReplacement(reference.range, "'$newUri'");
       });
     }
-
-    return changeBuilder.sourceChange;
   }
 
-  /// Computes the URI to use to reference [newFile] from [reference].
-  String _computeNewUri(SourceReference reference) {
+  Future<void> _appendChangesForResource(
+      ChangeBuilder changeBuilder, Resource resource, String newPath) async {
+    if (isCancellationRequested) {
+      return;
+    }
+
+    if (resource is File) {
+      await _appendChangeForFile(changeBuilder, resource, newPath);
+    } else if (resource is Folder) {
+      for (final child in resource.getChildren()) {
+        await _appendChangesForResource(changeBuilder, child,
+            pathContext.join(newPath, pathContext.basename(child.path)));
+      }
+    }
+  }
+
+  /// Computes the URI to use to reference [newPath] from [reference].
+  String _computeNewUri(SourceReference reference, String newPath) {
     var refDir = pathContext.dirname(reference.file);
     // Try to keep package: URI
     if (_isPackageReference(reference)) {
-      var restoredUri = driver.sourceFactory.pathToUri(newFile);
+      var restoredUri = driver.sourceFactory.pathToUri(newPath);
       // If the new URI is not a package: URI, fall back to computing a relative
       // URI below.
       if (restoredUri?.isScheme('package') ?? false) {
         return restoredUri.toString();
       }
     }
-    return _getRelativeUri(newFile, refDir);
+    return _getRelativeUri(newPath, refDir);
   }
 
   String _getRelativeUri(String path, String from) {
diff --git a/pkg/analysis_server/lib/src/services/refactoring/refactoring.dart b/pkg/analysis_server/lib/src/services/refactoring/refactoring.dart
index cdb3485..efe3880 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/refactoring.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/refactoring.dart
@@ -20,6 +20,7 @@
 import 'package:analysis_server/src/services/refactoring/rename_local.dart';
 import 'package:analysis_server/src/services/refactoring/rename_unit_member.dart';
 import 'package:analysis_server/src/services/search/search_engine.dart';
+import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/dart/analysis/results.dart';
 import 'package:analyzer/dart/analysis/session.dart';
 import 'package:analyzer/dart/ast/ast.dart';
@@ -248,16 +249,12 @@
   bool isAvailable();
 }
 
-/// [Refactoring] to move/rename a file.
+/// [Refactoring] to move/rename a file or folder.
 abstract class MoveFileRefactoring implements Refactoring {
   /// Returns a new [MoveFileRefactoring] instance.
-  factory MoveFileRefactoring(
-      ResourceProvider resourceProvider,
-      RefactoringWorkspace workspace,
-      ResolvedUnitResult resolveResult,
-      String oldFilePath) {
-    return MoveFileRefactoringImpl(
-        resourceProvider, workspace, resolveResult, oldFilePath);
+  factory MoveFileRefactoring(ResourceProvider resourceProvider,
+      RefactoringWorkspace workspace, String oldFilePath) {
+    return MoveFileRefactoringImpl(resourceProvider, workspace, oldFilePath);
   }
 
   /// The new file path to which the given file is being moved.
@@ -266,6 +263,8 @@
 
 /// Abstract interface for all refactorings.
 abstract class Refactoring {
+  set cancellationToken(CancellationToken token);
+
   /// The ids of source edits that are not known to be valid.
   ///
   /// An edit is not known to be valid if there was insufficient type
diff --git a/pkg/analysis_server/lib/src/services/refactoring/refactoring_internal.dart b/pkg/analysis_server/lib/src/services/refactoring/refactoring_internal.dart
index 7eef982..d969475 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/refactoring_internal.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/refactoring_internal.dart
@@ -8,6 +8,7 @@
 import 'package:analysis_server/src/services/correction/status.dart';
 import 'package:analysis_server/src/services/refactoring/refactoring.dart';
 import 'package:analysis_server/src/services/search/search_engine.dart';
+import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/src/generated/source.dart';
 
@@ -37,6 +38,11 @@
   @override
   final List<String> potentialEditIds = <String>[];
 
+  CancellationToken? cancellationToken;
+
+  bool get isCancellationRequested =>
+      cancellationToken?.isCancellationRequested ?? false;
+
   @override
   Future<RefactoringStatus> checkAllConditions() async {
     var result = RefactoringStatus();
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/flutter_snippet_producers.dart b/pkg/analysis_server/lib/src/services/snippets/dart/flutter_snippet_producers.dart
index f775b81..b5e210a 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/flutter_snippet_producers.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/flutter_snippet_producers.dart
@@ -8,6 +8,7 @@
 import 'package:analyzer/dart/element/nullability_suffix.dart';
 import 'package:analyzer/dart/element/type.dart';
 import 'package:analyzer/src/dart/analysis/session_helper.dart';
+import 'package:analyzer/src/dart/element/type.dart';
 import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
 import 'package:meta/meta.dart';
 
@@ -24,9 +25,11 @@
   @override
   @mustCallSuper
   Future<bool> isValid() async {
-    classWidget = await _getClass('Widget');
+    if ((classWidget = await _getClass('Widget')) == null) {
+      return false;
+    }
 
-    return classWidget != null;
+    return true;
   }
 
   Future<ClassElement?> _getClass(String name) =>
@@ -137,7 +140,7 @@
               builder.writeln('{');
               builder.write('    ');
               builder.selectHere();
-              builder.writeln('');
+              builder.writeln();
               builder.writeln('  }');
             },
           );
@@ -160,23 +163,10 @@
       return false;
     }
 
-    classStatefulWidget = await _getClass('StatefulWidget');
-    if (classStatefulWidget == null) {
-      return false;
-    }
-
-    classState = await _getClass('State');
-    if (classState == null) {
-      return false;
-    }
-
-    classBuildContext = await _getClass('BuildContext');
-    if (classBuildContext == null) {
-      return false;
-    }
-
-    classKey = await _getClass('Key');
-    if (classKey == null) {
+    if ((classStatefulWidget = await _getClass('StatefulWidget')) == null ||
+        (classState = await _getClass('State')) == null ||
+        (classBuildContext = await _getClass('BuildContext')) == null ||
+        (classKey = await _getClass('Key')) == null) {
       return false;
     }
 
@@ -188,6 +178,192 @@
       FlutterStatefulWidgetSnippetProducer(request);
 }
 
+/// Produces a [Snippet] that creates a Flutter StatefulWidget with a
+/// AnimationController and related State class.
+class FlutterStatefulWidgetWithAnimationControllerSnippetProducer
+    extends FlutterSnippetProducer {
+  static const prefix = 'stanim';
+  static const label = 'Flutter Widget with AnimationController';
+
+  late ClassElement? classStatefulWidget;
+  late ClassElement? classState;
+  late ClassElement? classBuildContext;
+  late ClassElement? classKey;
+  late ClassElement? classAnimationController;
+  late ClassElement? classSingleTickerProviderStateMixin;
+
+  FlutterStatefulWidgetWithAnimationControllerSnippetProducer(
+      DartSnippetRequest request)
+      : super(request);
+
+  @override
+  Future<Snippet> compute() async {
+    final builder = ChangeBuilder(session: request.analysisSession);
+
+    // Checked by isValid().
+    final classStatefulWidget = this.classStatefulWidget!;
+    final classState = this.classState!;
+    final classWidget = this.classWidget!;
+    final classBuildContext = this.classBuildContext!;
+    final classKey = this.classKey!;
+    final classAnimationController = this.classAnimationController!;
+    final classSingleTickerProviderStateMixin =
+        this.classSingleTickerProviderStateMixin!;
+
+    // Only include `?` for nulable types like Key? if in a null-safe library.
+    final nullableSuffix = request.unit.libraryElement.isNonNullableByDefault
+        ? NullabilitySuffix.question
+        : NullabilitySuffix.none;
+
+    final className = 'MyWidget';
+    await builder.addDartFileEdit(request.filePath, (builder) {
+      builder.addReplacement(request.replacementRange, (builder) {
+        // Write the StatefulWidget class
+        builder.writeClassDeclaration(
+          className,
+          nameGroupName: 'name',
+          superclass: _getType(classStatefulWidget),
+          membersWriter: () {
+            // Add the constructor.
+            builder.write('  ');
+            builder.writeConstructorDeclaration(
+              className,
+              classNameGroupName: 'name',
+              isConst: true,
+              parameterWriter: () {
+                builder.write('{');
+                builder.writeParameter(
+                  'key',
+                  type: _getType(classKey, nullableSuffix),
+                );
+                builder.write('}');
+              },
+              initializerWriter: () => builder.write('super(key: key)'),
+            );
+            builder.writeln();
+            builder.writeln();
+
+            // Add the createState method.
+            builder.writeln('  @override');
+            builder.write('  State<');
+            builder.addSimpleLinkedEdit('name', className);
+            builder.write('> createState() => _');
+            builder.addSimpleLinkedEdit('name', className);
+            builder.writeln('State();');
+          },
+        );
+        builder.writeln();
+        builder.writeln();
+
+        // Write the State class.
+        builder.write('class _');
+        builder.addSimpleLinkedEdit('name', className);
+        builder.write('State extends ');
+        builder.writeReference(classState);
+        builder.write('<');
+        builder.addSimpleLinkedEdit('name', className);
+        builder.writeln('>');
+        builder.write('    with ');
+        builder.writeReference(classSingleTickerProviderStateMixin);
+        builder.writeln(' {');
+        builder.write('  late ');
+        builder.writeReference(classAnimationController);
+        builder.writeln(' _controller;');
+        builder.writeln();
+        {
+          // Add the initState method.
+          builder.writeln('  @override');
+          builder.write('  ');
+          builder.writeFunctionDeclaration(
+            'initState',
+            returnType: VoidTypeImpl.instance,
+            bodyWriter: () {
+              builder.writeln('{');
+              builder.writeln('    super.initState();');
+              builder.write('    _controller = ');
+              builder.writeReference(classAnimationController);
+              builder.writeln('(vsync: this);');
+              builder.writeln('  }');
+            },
+          );
+        }
+        builder.writeln();
+        {
+          // Add the dispose method.
+          builder.writeln('  @override');
+          builder.write('  ');
+          builder.writeFunctionDeclaration(
+            'dispose',
+            returnType: VoidTypeImpl.instance,
+            bodyWriter: () {
+              builder.writeln('{');
+              builder.writeln('    super.dispose();');
+              builder.writeln('    _controller.dispose();');
+              builder.writeln('  }');
+            },
+          );
+        }
+        builder.writeln();
+        {
+          // Add the build method.
+          builder.writeln('  @override');
+          builder.write('  ');
+          builder.writeFunctionDeclaration(
+            'build',
+            returnType: _getType(classWidget),
+            parameterWriter: () {
+              builder.writeParameter(
+                'context',
+                type: _getType(classBuildContext),
+              );
+            },
+            bodyWriter: () {
+              builder.writeln('{');
+              builder.write('    ');
+              builder.selectHere();
+              builder.writeln();
+              builder.writeln('  }');
+            },
+          );
+        }
+        builder.write('}');
+      });
+    });
+
+    return Snippet(
+      prefix,
+      label,
+      'Insert a StatefulWidget with an AnimationController',
+      builder.sourceChange,
+    );
+  }
+
+  @override
+  Future<bool> isValid() async {
+    if (!await super.isValid()) {
+      return false;
+    }
+
+    if ((classStatefulWidget = await _getClass('StatefulWidget')) == null ||
+        (classState = await _getClass('State')) == null ||
+        (classBuildContext = await _getClass('BuildContext')) == null ||
+        (classKey = await _getClass('Key')) == null ||
+        (classAnimationController = await _getClass('AnimationController')) ==
+            null ||
+        (classSingleTickerProviderStateMixin =
+                await _getClass('SingleTickerProviderStateMixin')) ==
+            null) {
+      return false;
+    }
+
+    return true;
+  }
+
+  static FlutterStatefulWidgetWithAnimationControllerSnippetProducer
+      newInstance(DartSnippetRequest request) =>
+          FlutterStatefulWidgetWithAnimationControllerSnippetProducer(request);
+}
+
 /// Produces a [Snippet] that creates a Flutter StatelessWidget.
 class FlutterStatelessWidgetSnippetProducer extends FlutterSnippetProducer {
   static const prefix = 'stless';
@@ -258,7 +434,7 @@
                 builder.writeln('{');
                 builder.write('    ');
                 builder.selectHere();
-                builder.writeln('');
+                builder.writeln();
                 builder.writeln('  }');
               },
             );
@@ -281,18 +457,9 @@
       return false;
     }
 
-    classStatelessWidget = await _getClass('StatelessWidget');
-    if (classStatelessWidget == null) {
-      return false;
-    }
-
-    classBuildContext = await _getClass('BuildContext');
-    if (classBuildContext == null) {
-      return false;
-    }
-
-    classKey = await _getClass('Key');
-    if (classKey == null) {
+    if ((classStatelessWidget = await _getClass('StatelessWidget')) == null ||
+        (classBuildContext = await _getClass('BuildContext')) == null ||
+        (classKey = await _getClass('Key')) == null) {
       return false;
     }
 
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/snippet_manager.dart b/pkg/analysis_server/lib/src/services/snippets/dart/snippet_manager.dart
index 2cf065a..e3c1588 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/snippet_manager.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/snippet_manager.dart
@@ -23,8 +23,9 @@
   final producerGenerators =
       const <SnippetContext, List<SnippetProducerGenerator>>{
     SnippetContext.atTopLevel: [
-      FlutterStatelessWidgetSnippetProducer.newInstance,
       FlutterStatefulWidgetSnippetProducer.newInstance,
+      FlutterStatefulWidgetWithAnimationControllerSnippetProducer.newInstance,
+      FlutterStatelessWidgetSnippetProducer.newInstance,
     ]
   };
 
diff --git a/pkg/analysis_server/test/edit/refactoring_test.dart b/pkg/analysis_server/test/edit/refactoring_test.dart
index 8d4e69a..74507b0 100644
--- a/pkg/analysis_server/test/edit/refactoring_test.dart
+++ b/pkg/analysis_server/test/edit/refactoring_test.dart
@@ -4,6 +4,7 @@
 
 import 'package:analysis_server/protocol/protocol.dart';
 import 'package:analysis_server/protocol/protocol_generated.dart';
+import 'package:analysis_server/src/domain_server.dart';
 import 'package:analysis_server/src/edit/edit_domain.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 import 'package:test/test.dart';
@@ -27,15 +28,6 @@
   });
 }
 
-/// Wrapper around the test package's `fail` function.
-///
-/// Unlike the test package's `fail` function, this function is not annotated
-/// with @alwaysThrows, so we can call it at the top of a test method without
-/// causing the rest of the method to be flagged as dead code.
-void _fail(String message) {
-  fail(message);
-}
-
 @reflectiveTest
 class ConvertGetterMethodToMethodTest extends _AbstractGetRefactoring_Test {
   Future<void> test_function() {
@@ -1325,9 +1317,7 @@
 class MoveFileTest extends _AbstractGetRefactoring_Test {
   late MoveFileOptions options;
 
-  @failingTest
-  Future<void> test_OK() {
-    _fail('The move file refactoring is not supported under the new driver');
+  Future<void> test_file_OK() {
     newFile('/project/bin/lib.dart');
     addTestFile('''
 import 'dart:math';
@@ -1335,16 +1325,59 @@
 ''');
     _setOptions('/project/test.dart');
     return assertSuccessfulRefactoring(() {
-      return _sendMoveRequest();
+      return _sendMoveRequest(testFile);
     }, '''
 import 'dart:math';
 import 'bin/lib.dart';
 ''');
   }
 
-  Future<Response> _sendMoveRequest() {
+  Future<void> test_folder_cancel() {
+    newFile('/project/bin/original_folder/file.dart');
+    addTestFile('''
+import 'dart:math';
+import 'original_folder/file.dart';
+''');
+    _setOptions('/project/bin/new_folder');
+    return assertEmptySuccessfulRefactoring(() async {
+      return _sendAndCancelMoveRequest(
+          convertPath('/project/bin/original_folder'));
+    });
+  }
+
+  Future<void> test_folder_OK() {
+    newFile('/project/bin/original_folder/file.dart');
+    addTestFile('''
+import 'dart:math';
+import 'original_folder/file.dart';
+''');
+    _setOptions('/project/bin/new_folder');
+    return assertSuccessfulRefactoring(() async {
+      return _sendMoveRequest(convertPath('/project/bin/original_folder'));
+    }, '''
+import 'dart:math';
+import 'new_folder/file.dart';
+''');
+  }
+
+  Future<Response> _cancelMoveRequest() {
+    // 0 is the id from _sendMoveRequest
+    // 1 is another aribtrary id for the cancel request
+    var request = ServerCancelRequestParams('0').toRequest('1');
+    return serverChannel.sendRequest(request);
+  }
+
+  Future<Response> _sendAndCancelMoveRequest(String item) async {
+    final responses = await Future.wait([
+      _sendMoveRequest(item),
+      _cancelMoveRequest(),
+    ]);
+    return responses.first;
+  }
+
+  Future<Response> _sendMoveRequest(String item) {
     var request = EditGetRefactoringParams(
-            RefactoringKind.MOVE_FILE, testFile, 0, 0, false,
+            RefactoringKind.MOVE_FILE, item, 0, 0, false,
             options: options)
         .toRequest('0');
     return serverChannel.sendRequest(request);
@@ -2253,6 +2286,26 @@
 class _AbstractGetRefactoring_Test extends AbstractAnalysisTest {
   bool shouldWaitForFullAnalysis = true;
 
+  Future assertEmptySuccessfulRefactoring(
+      Future<Response> Function() requestSender,
+      {void Function(RefactoringFeedback?)? feedbackValidator}) async {
+    var result = await getRefactoringResult(requestSender);
+    assertResultProblemsOK(result);
+    if (feedbackValidator != null) {
+      feedbackValidator(result.feedback);
+    }
+    assertNoTestRefactoringResult(result);
+  }
+
+  /// Asserts that the given [EditGetRefactoringResult] does not have a change
+  /// for [testFile].
+  void assertNoTestRefactoringResult(EditGetRefactoringResult result) {
+    var change = result.change!;
+    if (change.edits.any((edit) => edit.file == testFile)) {
+      fail('Found a SourceFileEdit for $testFile in $change');
+    }
+  }
+
   /// Asserts that [problems] has a single ERROR problem.
   void assertResultProblemsError(List<RefactoringProblem> problems,
       [String? message]) {
@@ -2344,7 +2397,9 @@
   Future<void> setUp() async {
     super.setUp();
     await createProject();
-    handler = EditDomainHandler(server);
-    server.handlers = [handler];
+    server.handlers = [
+      EditDomainHandler(server),
+      ServerDomainHandler(server),
+    ];
   }
 }
diff --git a/pkg/analysis_server/test/lsp/completion_dart_test.dart b/pkg/analysis_server/test/lsp/completion_dart_test.dart
index b9cc9ab..f77603ba 100644
--- a/pkg/analysis_server/test/lsp/completion_dart_test.dart
+++ b/pkg/analysis_server/test/lsp/completion_dart_test.dart
@@ -2479,6 +2479,63 @@
 ''');
   }
 
+  Future<void> test_snippets_flutterStatefulWithAnimationController() async {
+    final content = '''
+import 'package:flutter/widgets.dart';
+
+class A {}
+
+stanim^
+
+class B {}
+''';
+
+    await initializeWithSnippetSupportAndPreviewFlag();
+    final updated = await expectAndApplySnippet(
+      content,
+      prefix:
+          FlutterStatefulWidgetWithAnimationControllerSnippetProducer.prefix,
+      label: FlutterStatefulWidgetWithAnimationControllerSnippetProducer.label,
+    );
+
+    expect(updated, '''
+import 'package:flutter/widgets.dart';
+
+class A {}
+
+class \${1:MyWidget} extends StatefulWidget {
+  const \${1:MyWidget}({Key$questionSuffix key}) : super(key: key);
+
+  @override
+  State<\${1:MyWidget}> createState() => _\${1:MyWidget}State();
+}
+
+class _\${1:MyWidget}State extends State<\${1:MyWidget}>
+    with SingleTickerProviderStateMixin {
+  late AnimationController _controller;
+
+  @override
+  void initState() {
+    super.initState();
+    _controller = AnimationController(vsync: this);
+  }
+
+  @override
+  void dispose() {
+    super.dispose();
+    _controller.dispose();
+  }
+
+  @override
+  Widget build(BuildContext context) {
+    \$0
+  }
+}
+
+class B {}
+''');
+  }
+
   Future<void> test_snippets_flutterStateless() async {
     final content = '''
 import 'package:flutter/widgets.dart';
diff --git a/pkg/analysis_server/test/mock_packages/flutter/lib/animation.dart b/pkg/analysis_server/test/mock_packages/flutter/lib/animation.dart
new file mode 100644
index 0000000..8dd7d64
--- /dev/null
+++ b/pkg/analysis_server/test/mock_packages/flutter/lib/animation.dart
@@ -0,0 +1,5 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+export 'src/animation/animation_controller.dart';
diff --git a/pkg/analysis_server/test/mock_packages/flutter/lib/src/animation/animation_controller.dart b/pkg/analysis_server/test/mock_packages/flutter/lib/src/animation/animation_controller.dart
new file mode 100644
index 0000000..4c4e4e6
--- /dev/null
+++ b/pkg/analysis_server/test/mock_packages/flutter/lib/src/animation/animation_controller.dart
@@ -0,0 +1,5 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+class AnimationController {}
diff --git a/pkg/analysis_server/test/mock_packages/flutter/lib/src/cupertino/colors.dart b/pkg/analysis_server/test/mock_packages/flutter/lib/src/cupertino/colors.dart
index 62356d5..92f600e 100644
--- a/pkg/analysis_server/test/mock_packages/flutter/lib/src/cupertino/colors.dart
+++ b/pkg/analysis_server/test/mock_packages/flutter/lib/src/cupertino/colors.dart
@@ -41,7 +41,6 @@
           darkElevatedColor,
           highContrastElevatedColor,
           darkHighContrastElevatedColor,
-          null,
         );
 
   const CupertinoDynamicColor.withBrightnessAndContrast({
diff --git a/pkg/analysis_server/test/mock_packages/flutter/lib/src/foundation/diagnostics.dart b/pkg/analysis_server/test/mock_packages/flutter/lib/src/foundation/diagnostics.dart
index c2bae69..f8fa737 100644
--- a/pkg/analysis_server/test/mock_packages/flutter/lib/src/foundation/diagnostics.dart
+++ b/pkg/analysis_server/test/mock_packages/flutter/lib/src/foundation/diagnostics.dart
@@ -7,7 +7,9 @@
 
 mixin Diagnosticable {}
 
-abstract class DiagnosticableTree with Diagnosticable {}
+abstract class DiagnosticableTree with Diagnosticable {
+  const DiagnosticableTree();
+}
 
 class DiagnosticPropertiesBuilder {
   void add(DiagnosticsNode property) {}
diff --git a/pkg/analysis_server/test/mock_packages/flutter/lib/src/widgets/basic.dart b/pkg/analysis_server/test/mock_packages/flutter/lib/src/widgets/basic.dart
index 303d1e8..020e8fd 100644
--- a/pkg/analysis_server/test/mock_packages/flutter/lib/src/widgets/basic.dart
+++ b/pkg/analysis_server/test/mock_packages/flutter/lib/src/widgets/basic.dart
@@ -6,6 +6,7 @@
 
 import 'framework.dart';
 
+export 'package:flutter/animation.dart';
 export 'package:flutter/painting.dart';
 export 'package:flutter/rendering.dart';
 
diff --git a/pkg/analysis_server/test/mock_packages/flutter/lib/src/widgets/ticker_provider.dart b/pkg/analysis_server/test/mock_packages/flutter/lib/src/widgets/ticker_provider.dart
new file mode 100644
index 0000000..f0419ff
--- /dev/null
+++ b/pkg/analysis_server/test/mock_packages/flutter/lib/src/widgets/ticker_provider.dart
@@ -0,0 +1,7 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'package:flutter/src/widgets/framework.dart';
+
+mixin SingleTickerProviderStateMixin<T extends StatefulWidget> on State<T> {}
diff --git a/pkg/analysis_server/test/mock_packages/flutter/lib/widgets.dart b/pkg/analysis_server/test/mock_packages/flutter/lib/widgets.dart
index 76d58efd..b8eedd8 100644
--- a/pkg/analysis_server/test/mock_packages/flutter/lib/widgets.dart
+++ b/pkg/analysis_server/test/mock_packages/flutter/lib/widgets.dart
@@ -8,4 +8,5 @@
 export 'src/widgets/framework.dart';
 export 'src/widgets/gesture_detector.dart';
 export 'src/widgets/icon.dart';
+export 'src/widgets/ticker_provider.dart';
 export 'src/widgets/text.dart';
diff --git a/pkg/analysis_server/test/services/refactoring/move_file_test.dart b/pkg/analysis_server/test/services/refactoring/move_file_test.dart
index 52fe0df..983df07 100644
--- a/pkg/analysis_server/test/services/refactoring/move_file_test.dart
+++ b/pkg/analysis_server/test/services/refactoring/move_file_test.dart
@@ -22,14 +22,12 @@
   late MoveFileRefactoring refactoring;
 
   Future<void> test_file_containing_imports_exports_parts() async {
-    var pathA = convertPath('/home/test/000/1111/a.dart');
-    var pathB = convertPath('/home/test/000/1111/b.dart');
-    var pathC = convertPath('/home/test/000/1111/22/c.dart');
-    testFile = convertPath('/home/test/000/1111/test.dart');
-    addSource('/absolute/uri.dart', '');
-    addSource(pathA, 'part of lib;');
-    addSource(pathB, "import 'test.dart';");
-    addSource(pathC, '');
+    final root = '/home/test/000/1111';
+    testFile = convertPath('$root/test.dart');
+    newFile('/absolute/uri.dart', content: '');
+    final fileA = newFile('$root/a.dart', content: 'part of lib;');
+    final fileB = newFile('$root/b.dart', content: "import 'test.dart';");
+    final fileC = newFile('$root/22/c.dart', content: '');
     verifyNoTestUnitErrors = false;
     await resolveTestCode('''
 library lib;
@@ -43,9 +41,9 @@
     // perform refactoring
     _createRefactoring('/home/test/000/1111/22/new_name.dart');
     await _assertSuccessfulRefactoring();
-    assertNoFileChange(pathA);
-    assertFileChangeResult(pathB, "import '22/new_name.dart';");
-    assertNoFileChange(pathC);
+    assertNoFileChange(fileA.path);
+    assertFileChangeResult(fileB.path, "import '22/new_name.dart';");
+    assertNoFileChange(fileC.path);
     assertFileChangeResult(testFile, '''
 library lib;
 import 'dart:math';
@@ -340,9 +338,34 @@
     assertNoFileChange(testFile);
   }
 
-  @failingTest
   Future<void> test_folder_inside_project() async {
-    fail('Not yet implemented/tested');
+    final pathA = convertPath('/home/test/lib/old/a.dart');
+    final pathB = convertPath('/home/test/lib/old/b.dart');
+    final pathC = convertPath('/home/test/lib/old/nested/c.dart');
+    final pathD = convertPath('/home/test/lib/old/nested/d.dart');
+    testFile = convertPath('/home/test/lib/test.dart');
+    addSource(pathA, '');
+    addSource(pathB, '');
+    addSource(pathC, '');
+    addSource(pathD, '');
+    verifyNoTestUnitErrors = false;
+    await resolveTestCode('''
+import 'old/a.dart';
+import 'package:test/old/b.dart';
+import 'old/nested/c.dart';
+import 'package:test/old/nested/d.dart';
+''');
+    // Rename the whole 'old' folder to 'new''.
+    _createRefactoring('/home/test/lib/new', oldFile: '/home/test/lib/old');
+    await _assertSuccessfulRefactoring();
+    assertNoFileChange(pathA);
+    assertNoFileChange(pathB);
+    assertFileChangeResult(testFile, '''
+import 'new/a.dart';
+import 'package:test/new/b.dart';
+import 'new/nested/c.dart';
+import 'package:test/new/nested/d.dart';
+''');
   }
 
   Future<void> test_folder_outside_workspace_returns_failure() async {
@@ -517,8 +540,8 @@
     // Allow passing an oldName for when we don't want to rename testSource,
     // but otherwise fall back to testSource.fullname
     oldFile = convertPath(oldFile ?? testFile);
-    refactoring = MoveFileRefactoring(
-        resourceProvider, refactoringWorkspace, testAnalysisResult, oldFile);
+    refactoring =
+        MoveFileRefactoring(resourceProvider, refactoringWorkspace, oldFile);
     refactoring.newFile = convertPath(newFile);
   }
 }
diff --git a/pkg/analysis_server/test/services/snippets/dart/flutter_snippet_producers_test.dart b/pkg/analysis_server/test/services/snippets/dart/flutter_snippet_producers_test.dart
index 67aa9f2..ce15a90 100644
--- a/pkg/analysis_server/test/services/snippets/dart/flutter_snippet_producers_test.dart
+++ b/pkg/analysis_server/test/services/snippets/dart/flutter_snippet_producers_test.dart
@@ -13,6 +13,8 @@
 void main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(FlutterStatefulWidgetSnippetProducerTest);
+    defineReflectiveTests(
+        FlutterStatefulWidgetWithAnimationControllerSnippetProducerTest);
     defineReflectiveTests(FlutterStatelessWidgetSnippetProducerTest);
   });
 }
@@ -116,6 +118,93 @@
 }
 
 @reflectiveTest
+class FlutterStatefulWidgetWithAnimationControllerSnippetProducerTest
+    extends FlutterSnippetProducerTest {
+  final generator =
+      FlutterStatefulWidgetWithAnimationControllerSnippetProducer.newInstance;
+  Future<void> test_notValid_notFlutterProject() async {
+    writeTestPackageConfig();
+
+    await expectNotValidSnippet(generator, '^');
+  }
+
+  Future<void> test_valid() async {
+    writeTestPackageConfig(flutter: true);
+
+    final snippet = await expectValidSnippet(generator, '^');
+    expect(snippet.prefix, 'stanim');
+    expect(snippet.label, 'Flutter Widget with AnimationController');
+    expect(snippet.change.toJson(), {
+      'message': '',
+      'edits': [
+        {
+          'file': testFile,
+          'fileStamp': 0,
+          'edits': [
+            {
+              'offset': 0,
+              'length': 0,
+              'replacement':
+                  'import \'package:flutter/src/animation/animation_controller.dart\';\n'
+                      'import \'package:flutter/src/foundation/key.dart\';\n'
+                      'import \'package:flutter/src/widgets/framework.dart\';\n'
+                      'import \'package:flutter/src/widgets/ticker_provider.dart\';\n'
+            },
+            {
+              'offset': 0,
+              'length': 0,
+              'replacement': 'class MyWidget extends StatefulWidget {\n'
+                  '  const MyWidget({Key? key}) : super(key: key);\n'
+                  '\n'
+                  '  @override\n'
+                  '  State<MyWidget> createState() => _MyWidgetState();\n'
+                  '}\n'
+                  '\n'
+                  'class _MyWidgetState extends State<MyWidget>\n'
+                  '    with SingleTickerProviderStateMixin {\n'
+                  '  late AnimationController _controller;\n'
+                  '\n'
+                  '  @override\n'
+                  '  void initState() {\n'
+                  '    super.initState();\n'
+                  '    _controller = AnimationController(vsync: this);\n'
+                  '  }\n'
+                  '\n'
+                  '  @override\n'
+                  '  void dispose() {\n'
+                  '    super.dispose();\n'
+                  '    _controller.dispose();\n'
+                  '  }\n'
+                  '\n'
+                  '  @override\n'
+                  '  Widget build(BuildContext context) {\n'
+                  '    \n'
+                  '  }\n'
+                  '}'
+            }
+          ]
+        }
+      ],
+      'linkedEditGroups': [
+        {
+          'positions': [
+            {'file': testFile, 'offset': 234},
+            {'file': testFile, 'offset': 276},
+            {'file': testFile, 'offset': 337},
+            {'file': testFile, 'offset': 365},
+            {'file': testFile, 'offset': 392},
+            {'file': testFile, 'offset': 420}
+          ],
+          'length': 8,
+          'suggestions': []
+        }
+      ],
+      'selection': {'file': testFile, 'offset': 765}
+    });
+  }
+}
+
+@reflectiveTest
 class FlutterStatelessWidgetSnippetProducerTest
     extends FlutterSnippetProducerTest {
   final generator = FlutterStatelessWidgetSnippetProducer.newInstance;
diff --git a/pkg/analysis_server/tool/spec/spec_input.html b/pkg/analysis_server/tool/spec/spec_input.html
index 7210871..1d7b96a 100644
--- a/pkg/analysis_server/tool/spec/spec_input.html
+++ b/pkg/analysis_server/tool/spec/spec_input.html
@@ -7,7 +7,7 @@
 <body>
 <h1>Analysis Server API Specification</h1>
 <h1 style="color:#999999">Version
-  <version>1.32.9</version>
+  <version>1.32.10</version>
 </h1>
 <p>
   This document contains a specification of the API provided by the
@@ -134,6 +134,10 @@
   ignoring the item or treating it with some default/fallback handling.
 </p>
 <h3>Changelog</h3>
+<h4>1.32.10</h4>
+<ul>
+  <li>The <tt>MOVE_FILE</tt> refactor now supports moving/renaming folders.</li>
+</ul>
 <h4>1.32.8</h4>
 <ul>
   <li>Added <tt>server.cancelRequest</tt> to allow clients to request cancellation
@@ -5907,10 +5911,15 @@
   </refactoring>
   <refactoring kind="MOVE_FILE">
     <p>
-      Move the given file and update all of the references to that file
-      and from it. The move operation is supported in general case - for
-      renaming a file in the same folder, moving it to a different folder
-      or both.
+      Move the given file or folder and update all of the references to
+      and from it. The move operation is supported in general case -
+      for renaming an item in the same folder, moving it to a different
+      folder or both.
+
+      Moving or renaming large folders may take time and clients should
+      consider showing an indicator to the user with the ability to
+      cancel the request (which can be done using
+      <tt>server.cancelRequest</tt>).
     </p>
     <p>
       The refactoring must be activated before an actual file moving
diff --git a/pkg/analysis_server_client/lib/src/protocol/protocol_constants.dart b/pkg/analysis_server_client/lib/src/protocol/protocol_constants.dart
index 6847dd0..e8a4e7e 100644
--- a/pkg/analysis_server_client/lib/src/protocol/protocol_constants.dart
+++ b/pkg/analysis_server_client/lib/src/protocol/protocol_constants.dart
@@ -6,7 +6,7 @@
 // To regenerate the file, use the script
 // "pkg/analysis_server/tool/spec/generate_files".
 
-const String PROTOCOL_VERSION = '1.32.9';
+const String PROTOCOL_VERSION = '1.32.10';
 
 const String ANALYSIS_NOTIFICATION_ANALYZED_FILES = 'analysis.analyzedFiles';
 const String ANALYSIS_NOTIFICATION_ANALYZED_FILES_DIRECTORIES = 'directories';
diff --git a/pkg/analyzer/lib/dart/ast/ast.dart b/pkg/analyzer/lib/dart/ast/ast.dart
index 06db863..a0da166 100644
--- a/pkg/analyzer/lib/dart/ast/ast.dart
+++ b/pkg/analyzer/lib/dart/ast/ast.dart
@@ -1926,6 +1926,9 @@
   /// The `abstract` keyword, or `null` if the keyword was not used.
   Token? get abstractKeyword;
 
+  /// The 'augment' keyword, or `null` if the keyword was not used.
+  Token? get augmentKeyword;
+
   /// The 'covariant' keyword, or `null` if the keyword was not used.
   Token? get covariantKeyword;
 
@@ -2338,6 +2341,10 @@
 ///
 /// Clients may not extend, implement or mix-in this class.
 abstract class FunctionDeclaration implements NamedCompilationUnitMember {
+  /// The token representing the 'augment' keyword, or `null` if this is not an
+  /// function augmentation.
+  Token? get augmentKeyword;
+
   @override
   ExecutableElement? get declaredElement;
 
@@ -3343,6 +3350,9 @@
 ///
 /// Clients may not extend, implement or mix-in this class.
 abstract class MixinDeclaration implements ClassOrMixinDeclaration {
+  /// Return the 'augment' keyword, or `null` if the keyword was absent.
+  Token? get augmentKeyword;
+
   /// Return the token representing the 'mixin' keyword.
   Token get mixinKeyword;
 
diff --git a/pkg/analyzer/lib/dart/ast/ast_factory.dart b/pkg/analyzer/lib/dart/ast/ast_factory.dart
index 8569e45..bc2ed6e 100644
--- a/pkg/analyzer/lib/dart/ast/ast_factory.dart
+++ b/pkg/analyzer/lib/dart/ast/ast_factory.dart
@@ -401,12 +401,14 @@
 
   /// Returns a newly created field declaration. Either or both of the
   /// [comment] and [metadata] can be `null` if the declaration does not have
-  /// the corresponding attribute. The [staticKeyword] can be `null` if the
-  /// field is not a static field.
+  /// the corresponding attribute. The [abstractKeyword], [augmentKeyword],
+  /// [covariantKeyword], [externalKeyword] and [staticKeyword] can be `null` if
+  /// the field does not have the corresponding modifier.
   FieldDeclaration fieldDeclaration2(
       {Comment? comment,
       List<Annotation>? metadata,
       Token? abstractKeyword,
+      Token? augmentKeyword,
       Token? covariantKeyword,
       Token? externalKeyword,
       Token? staticKeyword,
@@ -494,13 +496,15 @@
 
   /// Returns a newly created function declaration. Either or both of the
   /// [comment] and [metadata] can be `null` if the function does not have the
-  /// corresponding attribute. The [externalKeyword] can be `null` if the
-  /// function is not an external function. The [returnType] can be `null` if no
-  /// return type was specified. The [propertyKeyword] can be `null` if the
-  /// function is neither a getter or a setter.
+  /// corresponding attribute. The [augmentKeyword] can be `null` if the
+  /// function is not a function augmentation. The [externalKeyword] can be
+  /// `null` if the function is not an external function. The [returnType] can
+  /// be `null` if no return type was specified. The [propertyKeyword] can be
+  /// `null` if the function is neither a getter or a setter.
   FunctionDeclaration functionDeclaration(
       Comment? comment,
       List<Annotation>? metadata,
+      Token? augmentKeyword,
       Token? externalKeyword,
       TypeAnnotation? returnType,
       Token? propertyKeyword,
@@ -742,6 +746,7 @@
   MixinDeclaration mixinDeclaration(
       Comment? comment,
       List<Annotation>? metadata,
+      Token? augmentKeyword,
       Token mixinKeyword,
       SimpleIdentifier name,
       TypeParameterList? typeParameters,
diff --git a/pkg/analyzer/lib/error/error.dart b/pkg/analyzer/lib/error/error.dart
index 11a88a6..d0f8738 100644
--- a/pkg/analyzer/lib/error/error.dart
+++ b/pkg/analyzer/lib/error/error.dart
@@ -166,6 +166,7 @@
   CompileTimeErrorCode.ENUM_INSTANTIATED_TO_BOUNDS_IS_NOT_WELL_BOUNDED,
   CompileTimeErrorCode.ENUM_MIXIN_WITH_INSTANCE_VARIABLE,
   CompileTimeErrorCode.ENUM_WITH_ABSTRACT_MEMBER,
+  CompileTimeErrorCode.ENUM_WITH_NAME_VALUES,
   CompileTimeErrorCode.EQUAL_ELEMENTS_IN_CONST_SET,
   CompileTimeErrorCode.EQUAL_KEYS_IN_CONST_MAP,
   CompileTimeErrorCode.EXPECTED_ONE_LIST_TYPE_ARGUMENTS,
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index 8dacad1..a79fe72 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -82,7 +82,7 @@
 /// TODO(scheglov) Clean up the list of implicitly analyzed files.
 class AnalysisDriver implements AnalysisDriverGeneric {
   /// The version of data format, should be incremented on every format change.
-  static const int DATA_VERSION = 207;
+  static const int DATA_VERSION = 208;
 
   /// The number of exception contexts allowed to write. Once this field is
   /// zero, we stop writing any new exception contexts in this process.
@@ -2121,7 +2121,11 @@
 
   FileTracker get fileTracker => driver._fileTracker;
 
-  LibraryContext? get libraryContext => driver._libraryContext;
+  Set<String> get loadedLibraryUriSet {
+    var elementFactory = driver.libraryContext.elementFactory;
+    var libraryReferences = elementFactory.rootReference.children;
+    return libraryReferences.map((e) => e.name).toSet();
+  }
 
   Map<String, ResolvedUnitResult> get priorityResults {
     return driver._priorityResults;
diff --git a/pkg/analyzer/lib/src/dart/ast/ast.dart b/pkg/analyzer/lib/src/dart/ast/ast.dart
index 2d47ef2..790ae08 100644
--- a/pkg/analyzer/lib/src/dart/ast/ast.dart
+++ b/pkg/analyzer/lib/src/dart/ast/ast.dart
@@ -4202,6 +4202,10 @@
   @override
   Token? abstractKeyword;
 
+  /// The 'augment' keyword, or `null` if the keyword was not used.
+  @override
+  Token? augmentKeyword;
+
   /// The 'covariant' keyword, or `null` if the keyword was not used.
   @override
   Token? covariantKeyword;
@@ -4229,6 +4233,7 @@
       CommentImpl? comment,
       List<Annotation>? metadata,
       this.abstractKeyword,
+      this.augmentKeyword,
       this.covariantKeyword,
       this.externalKeyword,
       this.staticKeyword,
@@ -4253,8 +4258,8 @@
 
   @override
   Token get firstTokenAfterCommentAndMetadata {
-    return Token.lexicallyFirst(abstractKeyword, externalKeyword,
-            covariantKeyword, staticKeyword) ??
+    return Token.lexicallyFirst(abstractKeyword, augmentKeyword,
+            externalKeyword, covariantKeyword, staticKeyword) ??
         _fieldList.beginToken;
   }
 
@@ -5050,6 +5055,11 @@
 ///        [Type]? ('get' | 'set')? [SimpleIdentifier] [FormalParameterList]
 class FunctionDeclarationImpl extends NamedCompilationUnitMemberImpl
     implements FunctionDeclaration {
+  /// The token representing the 'augment' keyword, or `null` if this is not an
+  /// function augmentation.
+  @override
+  Token? augmentKeyword;
+
   /// The token representing the 'external' keyword, or `null` if this is not an
   /// external function.
   @override
@@ -5075,6 +5085,7 @@
   FunctionDeclarationImpl(
       CommentImpl? comment,
       List<Annotation>? metadata,
+      this.augmentKeyword,
       this.externalKeyword,
       this._returnType,
       this.propertyKeyword,
@@ -5094,7 +5105,8 @@
 
   @override
   Token get firstTokenAfterCommentAndMetadata {
-    return externalKeyword ??
+    return augmentKeyword ??
+        externalKeyword ??
         _returnType?.beginToken ??
         propertyKeyword ??
         _name.beginToken;
@@ -5123,6 +5135,7 @@
 
   @override
   ChildEntities get _childEntities => super._childEntities
+    ..addToken('augmentKeyword', augmentKeyword)
     ..addToken('externalKeyword', externalKeyword)
     ..addNode('returnType', returnType)
     ..addToken('propertyKeyword', propertyKeyword)
@@ -7587,6 +7600,9 @@
 class MixinDeclarationImpl extends ClassOrMixinDeclarationImpl
     implements MixinDeclaration {
   @override
+  Token? augmentKeyword;
+
+  @override
   Token mixinKeyword;
 
   /// The on clause for the mixin, or `null` if the mixin does not have any
@@ -7603,6 +7619,7 @@
   MixinDeclarationImpl(
       CommentImpl? comment,
       List<Annotation>? metadata,
+      this.augmentKeyword,
       this.mixinKeyword,
       SimpleIdentifierImpl name,
       TypeParameterListImpl? typeParameters,
diff --git a/pkg/analyzer/lib/src/dart/ast/ast_factory.dart b/pkg/analyzer/lib/src/dart/ast/ast_factory.dart
index bf7b306..b125806 100644
--- a/pkg/analyzer/lib/src/dart/ast/ast_factory.dart
+++ b/pkg/analyzer/lib/src/dart/ast/ast_factory.dart
@@ -539,6 +539,7 @@
           {Comment? comment,
           List<Annotation>? metadata,
           Token? abstractKeyword,
+          Token? augmentKeyword,
           Token? covariantKeyword,
           Token? externalKeyword,
           Token? staticKeyword,
@@ -548,6 +549,7 @@
           comment as CommentImpl?,
           metadata,
           abstractKeyword,
+          augmentKeyword,
           covariantKeyword,
           externalKeyword,
           staticKeyword,
@@ -673,6 +675,7 @@
   FunctionDeclarationImpl functionDeclaration(
           Comment? comment,
           List<Annotation>? metadata,
+          Token? augmentKeyword,
           Token? externalKeyword,
           TypeAnnotation? returnType,
           Token? propertyKeyword,
@@ -681,6 +684,7 @@
       FunctionDeclarationImpl(
           comment as CommentImpl?,
           metadata,
+          augmentKeyword,
           externalKeyword,
           returnType as TypeAnnotationImpl?,
           propertyKeyword,
@@ -1025,6 +1029,7 @@
   MixinDeclarationImpl mixinDeclaration(
           Comment? comment,
           List<Annotation>? metadata,
+          Token? augmentKeyword,
           Token mixinKeyword,
           SimpleIdentifier name,
           TypeParameterList? typeParameters,
@@ -1036,6 +1041,7 @@
       MixinDeclarationImpl(
           comment as CommentImpl?,
           metadata,
+          augmentKeyword,
           mixinKeyword,
           name as SimpleIdentifierImpl,
           typeParameters as TypeParameterListImpl?,
diff --git a/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart b/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart
index 92f15c0..d51f9d9 100644
--- a/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart
+++ b/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart
@@ -124,13 +124,19 @@
   }
 
   @override
-  visitEnumConstantDeclaration(node) {
+  visitEnumConstantDeclaration(EnumConstantDeclaration node) {
     super.visitEnumConstantDeclaration(node);
 
     var argumentList = node.arguments?.argumentList;
     if (argumentList != null) {
       _validateConstantArguments(argumentList);
     }
+
+    var element = node.declaredElement as ConstFieldElementImpl;
+    var result = element.evaluationResult;
+    if (result != null) {
+      _reportErrors(result.errors, null);
+    }
   }
 
   @override
diff --git a/pkg/analyzer/lib/src/dart/constant/evaluation.dart b/pkg/analyzer/lib/src/dart/constant/evaluation.dart
index 49ca24e..ba68d5e 100644
--- a/pkg/analyzer/lib/src/dart/constant/evaluation.dart
+++ b/pkg/analyzer/lib/src/dart/constant/evaluation.dart
@@ -28,6 +28,12 @@
 import 'package:analyzer/src/generated/engine.dart';
 import 'package:analyzer/src/task/api/model.dart';
 
+/// During evaluation of enum constants we might need to report an error
+/// that is associated with the [InstanceCreationExpression], but this
+/// expression is synthetic. Instead, we remember the corresponding
+/// [EnumConstantDeclaration] and report the error on it.
+final enumConstantErrorNodes = Expando<EnumConstantDeclaration>();
+
 /// Helper class encapsulating the methods for evaluating constants and
 /// constant instance creation expressions.
 class ConstantEvaluationEngine {
@@ -187,6 +193,18 @@
   /// [callback].
   void computeDependencies(
       ConstantEvaluationTarget constant, ReferenceFinderCallback callback) {
+    if (constant is ConstFieldElementImpl && constant.isEnumConstant) {
+      var enclosing = constant.enclosingElement;
+      if (enclosing is EnumElementImpl) {
+        if (enclosing.name == 'values') {
+          return;
+        }
+        if (constant.name == enclosing.name) {
+          return;
+        }
+      }
+    }
+
     ReferenceFinder referenceFinder = ReferenceFinder(callback);
     if (constant is ConstructorElement) {
       constant = constant.declaration;
@@ -2541,7 +2559,7 @@
       declaredVariables,
       errorReporter,
       library,
-      node,
+      enumConstantErrorNodes[node] ?? node,
       constructor,
       typeArguments,
       namedNodes: namedNodes,
diff --git a/pkg/analyzer/lib/src/dart/constant/utilities.dart b/pkg/analyzer/lib/src/dart/constant/utilities.dart
index 62f7b47..38b14dc 100644
--- a/pkg/analyzer/lib/src/dart/constant/utilities.dart
+++ b/pkg/analyzer/lib/src/dart/constant/utilities.dart
@@ -8,6 +8,7 @@
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/src/dart/constant/evaluation.dart';
+import 'package:analyzer/src/dart/element/element.dart';
 
 /// Callback used by [ReferenceFinder] to report that a dependency was found.
 typedef ReferenceFinderCallback = void Function(
@@ -141,6 +142,17 @@
   }
 
   @override
+  void visitEnumConstantDeclaration(EnumConstantDeclaration node) {
+    super.visitEnumConstantDeclaration(node);
+
+    var element = node.declaredElement as ConstFieldElementImpl;
+    constantsToCompute.add(element);
+
+    var constantInitializer = element.constantInitializer!;
+    enumConstantErrorNodes[constantInitializer] = node;
+  }
+
+  @override
   void visitVariableDeclaration(VariableDeclaration node) {
     super.visitVariableDeclaration(node);
     var initializer = node.initializer;
diff --git a/pkg/analyzer/lib/src/dart/resolver/annotation_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/annotation_resolver.dart
index 169a6e2..98fe2d9 100644
--- a/pkg/analyzer/lib/src/dart/resolver/annotation_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/annotation_resolver.dart
@@ -226,7 +226,8 @@
         typeArguments: node.typeArguments,
         arguments: node.arguments!,
         errorNode: node,
-        isConst: true);
+        isConst: true,
+        contextReturnType: null);
     if (inferenceResult != null) {
       constructorElement = inferenceResult.constructorElement;
     }
@@ -237,7 +238,7 @@
 
     var inferred = _resolver.inferenceHelper.inferGenericInvoke(
         node, constructorRawType, typeArgumentList, argumentList, node,
-        isConst: true)!;
+        isConst: true, contextReturnType: null)!;
 
     constructorElement = ConstructorMember.from(
       constructorElement,
diff --git a/pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart
index dfa4a1e..f9b9cc8 100644
--- a/pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart
@@ -42,7 +42,8 @@
 
   TypeSystemImpl get _typeSystem => _resolver.typeSystem;
 
-  void resolve(AssignmentExpressionImpl node) {
+  void resolve(AssignmentExpressionImpl node,
+      {required DartType? contextType}) {
     var operator = node.operator.type;
     var hasRead = operator != TokenType.EQ;
     var isIfNull = operator == TokenType.QUESTION_QUESTION_EQ;
@@ -88,7 +89,8 @@
     right = node.rightHandSide;
     var whyNotPromoted = flow?.whyNotPromoted(right);
 
-    _resolveTypes(node, whyNotPromoted: whyNotPromoted);
+    _resolveTypes(node,
+        whyNotPromoted: whyNotPromoted, contextType: contextType);
 
     if (flow != null) {
       if (writeElement is PromotableElement) {
@@ -223,7 +225,8 @@
   }
 
   void _resolveTypes(AssignmentExpressionImpl node,
-      {required Map<DartType, NonPromotionReason> Function()? whyNotPromoted}) {
+      {required Map<DartType, NonPromotionReason> Function()? whyNotPromoted,
+      required DartType? contextType}) {
     DartType assignedType;
 
     var rightHandSide = node.rightHandSide;
@@ -265,7 +268,7 @@
     } else {
       nodeType = assignedType;
     }
-    _inferenceHelper.recordStaticType(node, nodeType);
+    _inferenceHelper.recordStaticType(node, nodeType, contextType: contextType);
 
     // TODO(scheglov) Remove from ErrorVerifier?
     _checkForInvalidAssignment(
diff --git a/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
index 927a635..5e1246d 100644
--- a/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
@@ -39,31 +39,32 @@
 
   TypeSystemImpl get _typeSystem => _resolver.typeSystem;
 
-  void resolve(BinaryExpressionImpl node) {
+  void resolve(BinaryExpressionImpl node, {required DartType? contextType}) {
     var operator = node.operator.type;
 
     if (operator == TokenType.AMPERSAND_AMPERSAND) {
-      _resolveLogicalAnd(node);
+      _resolveLogicalAnd(node, contextType: contextType);
       return;
     }
 
     if (operator == TokenType.BANG_EQ || operator == TokenType.EQ_EQ) {
-      _resolveEqual(node, notEqual: operator == TokenType.BANG_EQ);
+      _resolveEqual(node,
+          notEqual: operator == TokenType.BANG_EQ, contextType: contextType);
       return;
     }
 
     if (operator == TokenType.BAR_BAR) {
-      _resolveLogicalOr(node);
+      _resolveLogicalOr(node, contextType: contextType);
       return;
     }
 
     if (operator == TokenType.QUESTION_QUESTION) {
-      _resolveIfNull(node);
+      _resolveIfNull(node, contextType: contextType);
       return;
     }
 
     if (operator.isUserDefinableOperator && operator.isBinaryOperator) {
-      _resolveUserDefinable(node);
+      _resolveUserDefinable(node, contextType: contextType);
       return;
     }
 
@@ -75,7 +76,7 @@
           [operator.lexeme]);
     }
 
-    _resolveUnsupportedOperator(node);
+    _resolveUnsupportedOperator(node, contextType: contextType);
   }
 
   /// Set the static type of [node] to be the least upper bound of the static
@@ -83,12 +84,14 @@
   ///
   /// TODO(scheglov) this is duplicate
   void _analyzeLeastUpperBoundTypes(
-      ExpressionImpl node, DartType staticType1, DartType staticType2) {
+      ExpressionImpl node, DartType staticType1, DartType staticType2,
+      {required DartType? contextType}) {
     var staticType = _typeSystem.getLeastUpperBound(staticType1, staticType2);
 
     staticType = _resolver.toLegacyTypeIfOptOut(staticType);
 
-    _inferenceHelper.recordStaticType(node, staticType);
+    _inferenceHelper.recordStaticType(node, staticType,
+        contextType: contextType);
   }
 
   void _checkNonBoolOperand(Expression operand, String operator,
@@ -101,7 +104,8 @@
     );
   }
 
-  void _resolveEqual(BinaryExpressionImpl node, {required bool notEqual}) {
+  void _resolveEqual(BinaryExpressionImpl node,
+      {required bool notEqual, required DartType? contextType}) {
     var left = node.leftOperand;
     left.accept(_resolver);
     left = node.leftOperand;
@@ -126,17 +130,18 @@
       TokenType.EQ_EQ.lexeme,
       promoteLeftTypeToNonNull: true,
     );
-    _resolveUserDefinableType(node);
+    _resolveUserDefinableType(node, contextType: contextType);
     _resolver.checkForArgumentTypeNotAssignableForArgument(node.rightOperand,
         promoteParameterToNullable: true, whyNotPromoted: whyNotPromoted);
   }
 
-  void _resolveIfNull(BinaryExpressionImpl node) {
+  void _resolveIfNull(BinaryExpressionImpl node,
+      {required DartType? contextType}) {
     var left = node.leftOperand;
     var right = node.rightOperand;
     var flow = _resolver.flowAnalysis.flow;
 
-    var leftContextType = InferenceContext.getContext(node);
+    var leftContextType = contextType;
     if (leftContextType != null && _isNonNullableByDefault) {
       leftContextType = _typeSystem.makeNullable(leftContextType);
     }
@@ -145,7 +150,7 @@
     left = node.leftOperand;
     var leftType = left.typeOrThrow;
 
-    var rightContextType = InferenceContext.getContext(node);
+    var rightContextType = contextType;
     if (rightContextType == null || rightContextType.isDynamic) {
       rightContextType = leftType;
     }
@@ -158,14 +163,17 @@
     var rightType = right.typeOrThrow;
     if (_isNonNullableByDefault) {
       var promotedLeftType = _typeSystem.promoteToNonNull(leftType);
-      _analyzeLeastUpperBoundTypes(node, promotedLeftType, rightType);
+      _analyzeLeastUpperBoundTypes(node, promotedLeftType, rightType,
+          contextType: contextType);
     } else {
-      _analyzeLeastUpperBoundTypes(node, leftType, rightType);
+      _analyzeLeastUpperBoundTypes(node, leftType, rightType,
+          contextType: contextType);
     }
     _resolver.checkForArgumentTypeNotAssignableForArgument(right);
   }
 
-  void _resolveLogicalAnd(BinaryExpressionImpl node) {
+  void _resolveLogicalAnd(BinaryExpressionImpl node,
+      {required DartType? contextType}) {
     var left = node.leftOperand;
     var right = node.rightOperand;
     var flow = _resolver.flowAnalysis.flow;
@@ -189,10 +197,12 @@
     _checkNonBoolOperand(left, '&&', whyNotPromoted: leftWhyNotPromoted);
     _checkNonBoolOperand(right, '&&', whyNotPromoted: rightWhyNotPromoted);
 
-    _inferenceHelper.recordStaticType(node, _typeProvider.boolType);
+    _inferenceHelper.recordStaticType(node, _typeProvider.boolType,
+        contextType: contextType);
   }
 
-  void _resolveLogicalOr(BinaryExpressionImpl node) {
+  void _resolveLogicalOr(BinaryExpressionImpl node,
+      {required DartType? contextType}) {
     var left = node.leftOperand;
     var right = node.rightOperand;
     var flow = _resolver.flowAnalysis.flow;
@@ -216,7 +226,8 @@
     _checkNonBoolOperand(left, '||', whyNotPromoted: leftWhyNotPromoted);
     _checkNonBoolOperand(right, '||', whyNotPromoted: rightWhyNotPromoted);
 
-    _inferenceHelper.recordStaticType(node, _typeProvider.boolType);
+    _inferenceHelper.recordStaticType(node, _typeProvider.boolType,
+        contextType: contextType);
   }
 
   /// If the given [type] is a type parameter, resolve it to the type that should
@@ -226,13 +237,16 @@
   DartType _resolveTypeParameter(DartType type) =>
       type.resolveToBound(_typeProvider.objectType);
 
-  void _resolveUnsupportedOperator(BinaryExpressionImpl node) {
+  void _resolveUnsupportedOperator(BinaryExpressionImpl node,
+      {required DartType? contextType}) {
     node.leftOperand.accept(_resolver);
     node.rightOperand.accept(_resolver);
-    _inferenceHelper.recordStaticType(node, DynamicTypeImpl.instance);
+    _inferenceHelper.recordStaticType(node, DynamicTypeImpl.instance,
+        contextType: contextType);
   }
 
-  void _resolveUserDefinable(BinaryExpressionImpl node) {
+  void _resolveUserDefinable(BinaryExpressionImpl node,
+      {required DartType? contextType}) {
     var left = node.leftOperand;
     var right = node.rightOperand;
 
@@ -243,23 +257,20 @@
     _resolveUserDefinableElement(node, operator.lexeme);
 
     var invokeType = node.staticInvokeType;
-    DartType? contextType;
+    DartType? rightContextType;
     if (invokeType != null && invokeType.parameters.isNotEmpty) {
       // If this is a user-defined operator, set the right operand context
       // using the operator method's parameter type.
       var rightParam = invokeType.parameters[0];
-      contextType = _typeSystem.refineNumericInvocationContext(
-          left.staticType,
-          node.staticElement,
-          InferenceContext.getContext(node),
-          rightParam.type);
+      rightContextType = _typeSystem.refineNumericInvocationContext(
+          left.staticType, node.staticElement, contextType, rightParam.type);
     }
 
-    _resolver.analyzeExpression(right, contextType);
+    _resolver.analyzeExpression(right, rightContextType);
     right = node.rightOperand;
     var whyNotPromoted = _resolver.flowAnalysis.flow?.whyNotPromoted(right);
 
-    _resolveUserDefinableType(node);
+    _resolveUserDefinableType(node, contextType: contextType);
     _resolver.checkForArgumentTypeNotAssignableForArgument(right,
         whyNotPromoted: whyNotPromoted);
   }
@@ -331,7 +342,8 @@
     }
   }
 
-  void _resolveUserDefinableType(BinaryExpressionImpl node) {
+  void _resolveUserDefinableType(BinaryExpressionImpl node,
+      {required DartType? contextType}) {
     var leftOperand = node.leftOperand;
 
     DartType leftType;
@@ -343,7 +355,8 @@
     }
 
     if (identical(leftType, NeverTypeImpl.instance)) {
-      _inferenceHelper.recordStaticType(node, NeverTypeImpl.instance);
+      _inferenceHelper.recordStaticType(node, NeverTypeImpl.instance,
+          contextType: contextType);
       return;
     }
 
@@ -358,6 +371,7 @@
         node.staticElement,
       );
     }
-    _inferenceHelper.recordStaticType(node, staticType);
+    _inferenceHelper.recordStaticType(node, staticType,
+        contextType: contextType);
   }
 }
diff --git a/pkg/analyzer/lib/src/dart/resolver/constructor_reference_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/constructor_reference_resolver.dart
index bd133e5..7c09b9d 100644
--- a/pkg/analyzer/lib/src/dart/resolver/constructor_reference_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/constructor_reference_resolver.dart
@@ -18,7 +18,8 @@
 
   ConstructorReferenceResolver(this._resolver);
 
-  void resolve(ConstructorReferenceImpl node) {
+  void resolve(ConstructorReferenceImpl node,
+      {required DartType? contextType}) {
     if (!_resolver.isConstructorTearoffsEnabled &&
         node.constructorName.type.typeArguments == null) {
       // Only report this if [node] has no explicit type arguments; otherwise
@@ -79,10 +80,11 @@
         }
       }
     }
-    _inferArgumentTypes(node);
+    _inferArgumentTypes(node, contextType: contextType);
   }
 
-  void _inferArgumentTypes(ConstructorReferenceImpl node) {
+  void _inferArgumentTypes(ConstructorReferenceImpl node,
+      {required DartType? contextType}) {
     var constructorName = node.constructorName;
     var elementToInfer = _resolver.inferenceHelper.constructorElementToInfer(
       constructorName: constructorName,
@@ -110,7 +112,8 @@
       var constructorType = elementToInfer.asType;
 
       var inferred = _resolver.inferenceHelper.inferTearOff(
-          node, constructorName.name!, constructorType) as FunctionType?;
+          node, constructorName.name!, constructorType,
+          contextType: contextType) as FunctionType?;
 
       if (inferred != null) {
         var inferredReturnType = inferred.returnType as InterfaceType;
diff --git a/pkg/analyzer/lib/src/dart/resolver/function_expression_invocation_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/function_expression_invocation_resolver.dart
index 3ca36ca..5a75cfd 100644
--- a/pkg/analyzer/lib/src/dart/resolver/function_expression_invocation_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/function_expression_invocation_resolver.dart
@@ -36,11 +36,13 @@
       _resolver.nullableDereferenceVerifier;
 
   void resolve(FunctionExpressionInvocationImpl node,
-      List<WhyNotPromotedGetter> whyNotPromotedList) {
+      List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     var function = node.function;
 
     if (function is ExtensionOverrideImpl) {
-      _resolveReceiverExtensionOverride(node, function, whyNotPromotedList);
+      _resolveReceiverExtensionOverride(node, function, whyNotPromotedList,
+          contextType: contextType);
       return;
     }
 
@@ -51,7 +53,8 @@
       // `_resolveReceiverInterfaceType` calls `TypePropertyResolver.resolve`,
       // which does the necessary null checking.
       _resolveReceiverInterfaceType(
-          node, function, receiverType, whyNotPromotedList);
+          node, function, receiverType, whyNotPromotedList,
+          contextType: contextType);
       return;
     }
 
@@ -66,7 +69,8 @@
     );
 
     if (receiverType is FunctionType) {
-      _resolve(node, receiverType, whyNotPromotedList);
+      _resolve(node, receiverType, whyNotPromotedList,
+          contextType: contextType);
       return;
     }
 
@@ -105,17 +109,20 @@
   }
 
   void _resolve(FunctionExpressionInvocationImpl node, FunctionType rawType,
-      List<WhyNotPromotedGetter> whyNotPromotedList) {
+      List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     _inferenceHelper.resolveFunctionExpressionInvocation(
       node: node,
       rawType: rawType,
       whyNotPromotedList: whyNotPromotedList,
+      contextType: contextType,
     );
 
     var returnType = _inferenceHelper.computeInvokeReturnType(
       node.staticInvokeType,
     );
-    _inferenceHelper.recordStaticType(node, returnType);
+    _inferenceHelper.recordStaticType(node, returnType,
+        contextType: contextType);
   }
 
   void _resolveArguments(FunctionExpressionInvocationImpl node,
@@ -124,11 +131,9 @@
         whyNotPromotedList: whyNotPromotedList);
   }
 
-  void _resolveReceiverExtensionOverride(
-    FunctionExpressionInvocationImpl node,
-    ExtensionOverride function,
-    List<WhyNotPromotedGetter> whyNotPromotedList,
-  ) {
+  void _resolveReceiverExtensionOverride(FunctionExpressionInvocationImpl node,
+      ExtensionOverride function, List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     var result = _extensionResolver.getOverrideMember(
       function,
       FunctionElement.CALL_METHOD_NAME,
@@ -153,15 +158,15 @@
     }
 
     var rawType = callElement.type;
-    _resolve(node, rawType, whyNotPromotedList);
+    _resolve(node, rawType, whyNotPromotedList, contextType: contextType);
   }
 
   void _resolveReceiverInterfaceType(
-    FunctionExpressionInvocationImpl node,
-    Expression function,
-    InterfaceType receiverType,
-    List<WhyNotPromotedGetter> whyNotPromotedList,
-  ) {
+      FunctionExpressionInvocationImpl node,
+      Expression function,
+      InterfaceType receiverType,
+      List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     var result = _typePropertyResolver.resolve(
       receiver: function,
       receiverType: receiverType,
@@ -193,7 +198,7 @@
 
     node.staticElement = callElement;
     var rawType = callElement.type;
-    _resolve(node, rawType, whyNotPromotedList);
+    _resolve(node, rawType, whyNotPromotedList, contextType: contextType);
   }
 
   void _unresolved(FunctionExpressionInvocationImpl node, DartType type,
diff --git a/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart
index 94ee5b4..bcddf19 100644
--- a/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart
@@ -30,7 +30,7 @@
 
   TypeSystemImpl get _typeSystem => _resolver.typeSystem;
 
-  void resolve(FunctionExpressionImpl node) {
+  void resolve(FunctionExpressionImpl node, {required DartType? contextType}) {
     var parent = node.parent;
     // Note: `isFunctionDeclaration` must have an explicit type to work around
     // https://github.com/dart-lang/language/issues/1785.
@@ -42,18 +42,17 @@
           .executableDeclaration_enter(node, node.parameters, true);
     }
 
-    var contextType = InferenceContext.getContext(node);
     bool wasFunctionTypeSupplied = contextType is FunctionType;
     node.wasFunctionTypeSupplied = wasFunctionTypeSupplied;
     DartType? imposedType;
     if (wasFunctionTypeSupplied) {
-      contextType = _matchTypeParameters(
+      var instantiatedType = _matchTypeParameters(
         node.typeParameters,
         contextType,
       );
-      if (contextType is FunctionType) {
-        _inferFormalParameters(node.parameters, contextType);
-        var returnType = contextType.returnType;
+      if (instantiatedType is FunctionType) {
+        _inferFormalParameters(node.parameters, instantiatedType);
+        var returnType = instantiatedType.returnType;
         if (!returnType.isDynamic) {
           imposedType = returnType;
         }
@@ -68,7 +67,7 @@
       // in scope, so we can visit the documentation comment now.
       parent.documentationComment?.accept(_resolver);
     }
-    _resolve2(node, imposedType);
+    _resolve2(node, imposedType, contextType: contextType);
 
     if (_resolver.flowAnalysis.flow != null && !isFunctionDeclaration) {
       _resolver.checkForBodyMayCompleteNormally(
@@ -169,14 +168,16 @@
     }).toList());
   }
 
-  void _resolve2(FunctionExpressionImpl node, DartType? imposedType) {
+  void _resolve2(FunctionExpressionImpl node, DartType? imposedType,
+      {required DartType? contextType}) {
     var functionElement = node.declaredElement as ExecutableElementImpl;
 
     if (_shouldUpdateReturnType(node)) {
       functionElement.returnType = imposedType ?? DynamicTypeImpl.instance;
     }
 
-    _inferenceHelper.recordStaticType(node, functionElement.type);
+    _inferenceHelper.recordStaticType(node, functionElement.type,
+        contextType: contextType);
   }
 
   static bool _shouldUpdateReturnType(FunctionExpression node) {
diff --git a/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart
index cf14dd4..0aa5a1e 100644
--- a/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart
@@ -453,22 +453,26 @@
       return;
     }
 
-    var functionType = _resolveTypeProperty(
+    var propertyType = _resolveTypeProperty(
       receiver: function.prefix,
       name: function.identifier,
       nameErrorEntity: function,
     );
 
-    if (functionType != null) {
-      if (functionType is FunctionType) {
-        function.staticType = functionType;
-        _resolve(
-          node: node,
-          rawType: functionType,
-          name: functionName,
-        );
-        return;
-      }
+    var callMethod = _getCallMethod(node, propertyType);
+    if (callMethod is MethodElement) {
+      _resolveAsImplicitCallReference(node, callMethod);
+      return;
+    }
+
+    if (propertyType is FunctionType) {
+      function.staticType = propertyType;
+      _resolve(
+        node: node,
+        rawType: propertyType,
+        name: functionName,
+      );
+      return;
     }
 
     function.accept(_resolver);
@@ -823,17 +827,13 @@
       if (receiverElement is ClassElement) {
         var element = _resolveStaticElement(receiverElement, name);
         name.staticElement = element;
-        // TODO(srawlins): Should this use referenceType? E.g. if `element`
-        // is a function-typed static getter.
-        return element?.type;
+        return element?.referenceType;
       } else if (receiverElement is TypeAliasElement) {
         var aliasedType = receiverElement.aliasedType;
         if (aliasedType is InterfaceType) {
           var element = _resolveStaticElement(aliasedType.element, name);
           name.staticElement = element;
-          // TODO(srawlins): Should this use referenceType? E.g. if `element`
-          // is a function-typed static getter.
-          return element?.type;
+          return element?.referenceType;
         } else {
           return null;
         }
diff --git a/pkg/analyzer/lib/src/dart/resolver/instance_creation_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/instance_creation_expression_resolver.dart
index fff2325..e139af8 100644
--- a/pkg/analyzer/lib/src/dart/resolver/instance_creation_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/instance_creation_expression_resolver.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/element/type.dart';
 import 'package:analyzer/src/dart/ast/ast.dart';
 import 'package:analyzer/src/dart/resolver/instance_creation_resolver_helper.dart';
 import 'package:analyzer/src/generated/resolver.dart';
@@ -22,7 +23,8 @@
   @override
   ResolverVisitor get resolver => _resolver;
 
-  void resolve(InstanceCreationExpressionImpl node) {
+  void resolve(InstanceCreationExpressionImpl node,
+      {required DartType? contextType}) {
     // The parser can parse certain code as [InstanceCreationExpression] when it
     // might be an invocation of a method on a [FunctionReference] or
     // [ConstructorReference]. In such a case, it is this resolver's
@@ -42,15 +44,17 @@
       if (typeNameTypeArguments != null) {
         // This could be a method call on a function reference or a constructor
         // reference.
-        _resolveWithTypeNameWithTypeArguments(node, typeNameTypeArguments);
+        _resolveWithTypeNameWithTypeArguments(node, typeNameTypeArguments,
+            contextType: contextType);
         return;
       }
     }
 
-    _resolveInstanceCreationExpression(node);
+    _resolveInstanceCreationExpression(node, contextType: contextType);
   }
 
-  void _resolveInstanceCreationExpression(InstanceCreationExpressionImpl node) {
+  void _resolveInstanceCreationExpression(InstanceCreationExpressionImpl node,
+      {required DartType? contextType}) {
     var whyNotPromotedList = <WhyNotPromotedGetter>[];
     var constructorName = node.constructorName;
     constructorName.accept(_resolver);
@@ -69,7 +73,8 @@
         typeArguments: typeName.typeArguments,
         arguments: node.argumentList,
         errorNode: constructorName,
-        isConst: node.isConst);
+        isConst: node.isConst,
+        contextReturnType: contextType);
     if (inferenceResult != null) {
       typeName.type = inferenceResult.constructedType;
       constructorElement =
@@ -79,7 +84,8 @@
         node.argumentList, constructorElement?.parameters,
         whyNotPromotedList: whyNotPromotedList);
     _resolver.elementResolver.visitInstanceCreationExpression(node);
-    _resolver.typeAnalyzer.visitInstanceCreationExpression(node);
+    _resolver.typeAnalyzer
+        .visitInstanceCreationExpression(node, contextType: contextType);
     _resolver.checkForArgumentTypesNotAssignableInList(
         node.argumentList, whyNotPromotedList);
   }
@@ -90,23 +96,23 @@
   /// The instance creation expression may actually be a method call on a
   /// type-instantiated function reference or constructor reference.
   void _resolveWithTypeNameWithTypeArguments(
-    InstanceCreationExpressionImpl node,
-    TypeArgumentListImpl typeNameTypeArguments,
-  ) {
+      InstanceCreationExpressionImpl node,
+      TypeArgumentListImpl typeNameTypeArguments,
+      {required DartType? contextType}) {
     var typeNameName = node.constructorName.type.name;
     if (typeNameName is SimpleIdentifierImpl) {
       // TODO(srawlins): Lookup the name and potentially rewrite `node` as a
       // [MethodInvocation].
-      _resolveInstanceCreationExpression(node);
+      _resolveInstanceCreationExpression(node, contextType: contextType);
       return;
     } else if (typeNameName is PrefixedIdentifierImpl) {
       // TODO(srawlins): Lookup the name and potentially rewrite `node` as a
       // [MethodInvocation].
-      _resolveInstanceCreationExpression(node);
+      _resolveInstanceCreationExpression(node, contextType: contextType);
     } else {
       assert(
           false, 'Unexpected typeNameName type: ${typeNameName.runtimeType}');
-      _resolveInstanceCreationExpression(node);
+      _resolveInstanceCreationExpression(node, contextType: contextType);
     }
   }
 }
diff --git a/pkg/analyzer/lib/src/dart/resolver/instance_creation_resolver_helper.dart b/pkg/analyzer/lib/src/dart/resolver/instance_creation_resolver_helper.dart
index a568421..0f99c2d 100644
--- a/pkg/analyzer/lib/src/dart/resolver/instance_creation_resolver_helper.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/instance_creation_resolver_helper.dart
@@ -37,7 +37,8 @@
       required TypeArgumentListImpl? typeArguments,
       required ArgumentListImpl arguments,
       required AstNode errorNode,
-      required bool isConst}) {
+      required bool isConst,
+      required DartType? contextReturnType}) {
     InstanceCreationInferenceResult? inferenceResult;
     FunctionType? inferred;
 
@@ -63,7 +64,9 @@
 
       inferred = resolver.inferenceHelper.inferArgumentTypesForGeneric(
           inferenceNode, constructorType, typeArguments,
-          isConst: isConst, errorNode: errorNode);
+          isConst: isConst,
+          errorNode: errorNode,
+          contextReturnType: contextReturnType);
 
       if (inferred != null) {
         // Fix up the parameter elements based on inferred method.
diff --git a/pkg/analyzer/lib/src/dart/resolver/invocation_inference_helper.dart b/pkg/analyzer/lib/src/dart/resolver/invocation_inference_helper.dart
index 598cae9..1e5f7a6 100644
--- a/pkg/analyzer/lib/src/dart/resolver/invocation_inference_helper.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/invocation_inference_helper.dart
@@ -138,7 +138,9 @@
 
   FunctionType? inferArgumentTypesForGeneric(AstNode inferenceNode,
       DartType? uninstantiatedType, TypeArgumentList? typeArguments,
-      {AstNode? errorNode, bool isConst = false}) {
+      {AstNode? errorNode,
+      bool isConst = false,
+      required DartType? contextReturnType}) {
     errorNode ??= inferenceNode;
     uninstantiatedType = _getFreshType(uninstantiatedType);
     if (typeArguments == null &&
@@ -149,7 +151,7 @@
         parameters: const <ParameterElement>[],
         declaredReturnType: uninstantiatedType.returnType,
         argumentTypes: const <DartType>[],
-        contextReturnType: InferenceContext.getContext(inferenceNode),
+        contextReturnType: contextReturnType,
         downwards: true,
         isConst: isConst,
         errorReporter: _errorReporter,
@@ -164,10 +166,10 @@
   }
 
   DartType? inferArgumentTypesForInvocation(
-    InvocationExpression node,
-    DartType? type,
-  ) {
-    return inferArgumentTypesForGeneric(node, type, node.typeArguments) ??
+      InvocationExpression node, DartType? type,
+      {required DartType? contextType}) {
+    return inferArgumentTypesForGeneric(node, type, node.typeArguments,
+            contextReturnType: contextType) ??
         node.staticInvokeType;
   }
 
@@ -177,14 +179,14 @@
   /// This takes into account both the context type, as well as information from
   /// the argument types.
   void inferGenericInvocationExpression(
-    InvocationExpressionImpl node,
-    DartType? type,
-  ) {
+      InvocationExpressionImpl node, DartType? type,
+      {required DartType? contextType}) {
     var arguments = node.argumentList;
     var freshType = _getFreshType(type);
 
     var inferred = inferGenericInvoke(
-        node, freshType, node.typeArguments, arguments, node.function);
+        node, freshType, node.typeArguments, arguments, node.function,
+        contextReturnType: contextType);
     if (inferred != null && inferred != node.staticInvokeType) {
       // Fix up the parameter elements based on inferred method.
       arguments.correspondingStaticParameters =
@@ -208,7 +210,8 @@
       TypeArgumentList? typeArguments,
       ArgumentList argumentList,
       AstNode errorNode,
-      {bool isConst = false}) {
+      {bool isConst = false,
+      required DartType? contextReturnType}) {
     if (typeArguments == null &&
         fnType is FunctionType &&
         fnType.typeFormals.isNotEmpty) {
@@ -216,7 +219,7 @@
       var typeArgs = _inferUpwards(
         rawType: fnType,
         argumentList: argumentList,
-        contextType: InferenceContext.getContext(node),
+        contextType: contextReturnType,
         isConst: isConst,
         errorNode: errorNode,
       );
@@ -247,15 +250,12 @@
   /// Given an uninstantiated generic function type, referenced by the
   /// [identifier] in the tear-off [expression], try to infer the instantiated
   /// generic function type from the surrounding context.
-  DartType inferTearOff(
-    Expression expression,
-    SimpleIdentifierImpl identifier,
-    DartType tearOffType,
-  ) {
-    var context = InferenceContext.getContext(expression);
-    if (context is FunctionType && tearOffType is FunctionType) {
+  DartType inferTearOff(Expression expression, SimpleIdentifierImpl identifier,
+      DartType tearOffType,
+      {required DartType? contextType}) {
+    if (contextType is FunctionType && tearOffType is FunctionType) {
       var typeArguments = _typeSystem.inferFunctionTypeInstantiation(
-        context,
+        contextType,
         tearOffType,
         errorReporter: _errorReporter,
         errorNode: expression,
@@ -273,11 +273,11 @@
   ///
   /// @param expression the node whose type is to be recorded
   /// @param type the static type of the node
-  void recordStaticType(ExpressionImpl expression, DartType type) {
+  void recordStaticType(ExpressionImpl expression, DartType type,
+      {required DartType? contextType}) {
     var hooks = _migrationResolutionHooks;
     if (hooks != null) {
-      type = hooks.modifyExpressionType(
-          expression, type, InferenceContext.getContext(expression));
+      type = hooks.modifyExpressionType(expression, type, contextType);
     }
 
     expression.staticType = type;
@@ -295,12 +295,13 @@
     required FunctionExpressionInvocationImpl node,
     required FunctionType rawType,
     required List<WhyNotPromotedGetter> whyNotPromotedList,
+    required DartType? contextType,
   }) {
     _resolveInvocation(
       rawType: rawType,
       typeArgumentList: node.typeArguments,
       argumentList: node.argumentList,
-      contextType: InferenceContext.getContext(node),
+      contextType: contextType,
       isConst: false,
       errorNode: node.function,
       whyNotPromotedList: whyNotPromotedList,
@@ -319,12 +320,13 @@
     required MethodInvocationImpl node,
     required FunctionType rawType,
     required List<WhyNotPromotedGetter> whyNotPromotedList,
+    required DartType? contextType,
   }) {
     _resolveInvocation(
       rawType: rawType,
       typeArgumentList: node.typeArguments,
       argumentList: node.argumentList,
-      contextType: InferenceContext.getContext(node),
+      contextType: contextType,
       isConst: false,
       errorNode: node.function,
       whyNotPromotedList: whyNotPromotedList,
@@ -345,7 +347,7 @@
         returnType,
       );
     }
-    recordStaticType(node, returnType);
+    recordStaticType(node, returnType, contextType: contextType);
   }
 
   List<DartType>? _inferDownwards({
@@ -421,10 +423,12 @@
   void _resolveArguments(
       ArgumentList argumentList,
       List<WhyNotPromotedGetter> whyNotPromotedList,
-      List<ParameterElement> parameters) {
+      List<ParameterElement> parameters,
+      {required DartType? methodInvocationContext}) {
     _resolver.analyzeArgumentList(argumentList, parameters,
         isIdentical: _isCallToIdentical(argumentList.parent),
-        whyNotPromotedList: whyNotPromotedList);
+        whyNotPromotedList: whyNotPromotedList,
+        methodInvocationContext: methodInvocationContext);
   }
 
   void _resolveInvocation({
@@ -442,6 +446,7 @@
         typeArgumentList: typeArgumentList,
         argumentList: argumentList,
         whyNotPromotedList: whyNotPromotedList,
+        methodInvocationContext: contextType,
       );
     } else {
       _resolveInvocationWithoutTypeArguments(
@@ -467,7 +472,8 @@
     var typeParameters = rawType.typeFormals;
 
     if (typeParameters.isEmpty) {
-      _resolveArguments(argumentList, whyNotPromotedList, rawType.parameters);
+      _resolveArguments(argumentList, whyNotPromotedList, rawType.parameters,
+          methodInvocationContext: contextType);
 
       _typeArgumentTypes = const <DartType>[];
       _invokeType = rawType;
@@ -484,7 +490,8 @@
       var downwardsInvokeType = rawType.instantiate(downwardsTypeArguments);
 
       _resolveArguments(
-          argumentList, whyNotPromotedList, downwardsInvokeType.parameters);
+          argumentList, whyNotPromotedList, downwardsInvokeType.parameters,
+          methodInvocationContext: contextType);
 
       _typeArgumentTypes = _inferUpwards(
         rawType: rawType,
@@ -502,6 +509,7 @@
     required TypeArgumentList typeArgumentList,
     required ArgumentList argumentList,
     required List<WhyNotPromotedGetter> whyNotPromotedList,
+    required DartType? methodInvocationContext,
   }) {
     var typeParameters = rawType.typeFormals;
 
@@ -528,7 +536,8 @@
 
     var invokeType = rawType.instantiate(typeArguments);
 
-    _resolveArguments(argumentList, whyNotPromotedList, invokeType.parameters);
+    _resolveArguments(argumentList, whyNotPromotedList, invokeType.parameters,
+        methodInvocationContext: methodInvocationContext);
 
     _typeArgumentTypes = typeArguments;
     _invokeType = invokeType;
diff --git a/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
index 259c982..87c4e6c 100644
--- a/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
@@ -76,8 +76,9 @@
 
   TypeSystemImpl get _typeSystem => _resolver.typeSystem;
 
-  void resolve(MethodInvocationImpl node,
-      List<WhyNotPromotedGetter> whyNotPromotedList) {
+  void resolve(
+      MethodInvocationImpl node, List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     _invocation = node;
 
     var nameNode = node.methodName;
@@ -87,7 +88,8 @@
     var receiver = node.realTarget;
 
     if (receiver == null) {
-      _resolveReceiverNull(node, nameNode, name, whyNotPromotedList);
+      _resolveReceiverNull(node, nameNode, name, whyNotPromotedList,
+          contextType: contextType);
       return;
     }
 
@@ -95,7 +97,8 @@
       var receiverElement = receiver.staticElement;
       if (receiverElement is PrefixElement) {
         _resolveReceiverPrefix(
-            node, receiverElement, nameNode, name, whyNotPromotedList);
+            node, receiverElement, nameNode, name, whyNotPromotedList,
+            contextType: contextType);
         return;
       }
     }
@@ -103,20 +106,23 @@
     if (receiver is IdentifierImpl) {
       var receiverElement = receiver.staticElement;
       if (receiverElement is ExtensionElement) {
-        _resolveExtensionMember(node, receiver, receiverElement, nameNode, name,
-            whyNotPromotedList);
+        _resolveExtensionMember(
+            node, receiver, receiverElement, nameNode, name, whyNotPromotedList,
+            contextType: contextType);
         return;
       }
     }
 
     if (receiver is SuperExpressionImpl) {
-      _resolveReceiverSuper(node, receiver, nameNode, name, whyNotPromotedList);
+      _resolveReceiverSuper(node, receiver, nameNode, name, whyNotPromotedList,
+          contextType: contextType);
       return;
     }
 
     if (receiver is ExtensionOverrideImpl) {
       _resolveExtensionOverride(
-          node, receiver, nameNode, name, whyNotPromotedList);
+          node, receiver, nameNode, name, whyNotPromotedList,
+          contextType: contextType);
       return;
     }
 
@@ -124,13 +130,15 @@
       var element = receiver.staticElement;
       if (element is ClassElement) {
         _resolveReceiverTypeLiteral(
-            node, element, nameNode, name, whyNotPromotedList);
+            node, element, nameNode, name, whyNotPromotedList,
+            contextType: contextType);
         return;
       } else if (element is TypeAliasElement) {
         var aliasedType = element.aliasedType;
         if (aliasedType is InterfaceType) {
           _resolveReceiverTypeLiteral(
-              node, aliasedType.element, nameNode, name, whyNotPromotedList);
+              node, aliasedType.element, nameNode, name, whyNotPromotedList,
+              contextType: contextType);
           return;
         }
       }
@@ -139,17 +147,20 @@
     DartType receiverType = receiver.typeOrThrow;
 
     if (_typeSystem.isDynamicBounded(receiverType)) {
-      _resolveReceiverDynamicBounded(node, whyNotPromotedList);
+      _resolveReceiverDynamicBounded(node, whyNotPromotedList,
+          contextType: contextType);
       return;
     }
 
     if (receiverType is NeverTypeImpl) {
-      _resolveReceiverNever(node, receiver, receiverType, whyNotPromotedList);
+      _resolveReceiverNever(node, receiver, receiverType, whyNotPromotedList,
+          contextType: contextType);
       return;
     }
 
     if (receiverType is VoidType) {
-      _reportUseOfVoidType(node, receiver, whyNotPromotedList);
+      _reportUseOfVoidType(node, receiver, whyNotPromotedList,
+          contextType: contextType);
       return;
     }
 
@@ -160,7 +171,8 @@
 
     if (_typeSystem.isFunctionBounded(receiverType)) {
       _resolveReceiverFunctionBounded(
-          node, receiver, receiverType, nameNode, name, whyNotPromotedList);
+          node, receiver, receiverType, nameNode, name, whyNotPromotedList,
+          contextType: contextType);
       return;
     }
 
@@ -175,7 +187,8 @@
         nameNode,
         [name, receiver.type.name.name],
       );
-      _setDynamicResolution(node, whyNotPromotedList: whyNotPromotedList);
+      _setDynamicResolution(node,
+          whyNotPromotedList: whyNotPromotedList, contextType: contextType);
       return;
     }
 
@@ -187,6 +200,7 @@
       name: name,
       receiverErrorNode: receiver,
       whyNotPromotedList: whyNotPromotedList,
+      contextType: contextType,
     );
   }
 
@@ -244,10 +258,13 @@
     }
   }
 
-  void _reportInvocationOfNonFunction(MethodInvocationImpl node,
-      List<WhyNotPromotedGetter> whyNotPromotedList) {
+  void _reportInvocationOfNonFunction(
+      MethodInvocationImpl node, List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     _setDynamicResolution(node,
-        setNameTypeToDynamic: false, whyNotPromotedList: whyNotPromotedList);
+        setNameTypeToDynamic: false,
+        whyNotPromotedList: whyNotPromotedList,
+        contextType: contextType);
     _resolver.errorReporter.reportErrorForNode(
       CompileTimeErrorCode.INVOCATION_OF_NON_FUNCTION,
       node.methodName,
@@ -279,8 +296,10 @@
     required String? prefix,
     required String name,
     required List<WhyNotPromotedGetter> whyNotPromotedList,
+    required DartType? contextType,
   }) {
-    _setDynamicResolution(node, whyNotPromotedList: whyNotPromotedList);
+    _setDynamicResolution(node,
+        whyNotPromotedList: whyNotPromotedList, contextType: contextType);
 
     if (_definingLibrary.shouldIgnoreUndefined(prefix: prefix, name: name)) {
       return;
@@ -294,8 +313,10 @@
   }
 
   void _reportUseOfVoidType(MethodInvocationImpl node, AstNode errorNode,
-      List<WhyNotPromotedGetter> whyNotPromotedList) {
-    _setDynamicResolution(node, whyNotPromotedList: whyNotPromotedList);
+      List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
+    _setDynamicResolution(node,
+        whyNotPromotedList: whyNotPromotedList, contextType: contextType);
     _resolver.errorReporter.reportErrorForNode(
       CompileTimeErrorCode.USE_OF_VOID_RESULT,
       errorNode,
@@ -304,32 +325,38 @@
 
   /// [InvocationExpression.staticInvokeType] has been set for the [node].
   /// Use it to set context for arguments, and resolve them.
-  void _resolveArguments(MethodInvocationImpl node,
-      List<WhyNotPromotedGetter> whyNotPromotedList) {
+  void _resolveArguments(
+      MethodInvocationImpl node, List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     // TODO(scheglov) This is bad, don't write raw type, carry it
     var callerType = _inferenceHelper.inferArgumentTypesForInvocation(
       node,
       node.methodName.staticType,
+      contextType: contextType,
     );
     _resolver.analyzeArgumentList(node.argumentList,
         callerType is FunctionType ? callerType.parameters : null,
-        whyNotPromotedList: whyNotPromotedList);
+        whyNotPromotedList: whyNotPromotedList,
+        methodInvocationContext: contextType);
   }
 
-  void _resolveArguments_finishInference(MethodInvocationImpl node,
-      List<WhyNotPromotedGetter> whyNotPromotedList) {
-    _resolveArguments(node, whyNotPromotedList);
+  void _resolveArguments_finishInference(
+      MethodInvocationImpl node, List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
+    _resolveArguments(node, whyNotPromotedList, contextType: contextType);
 
     // TODO(scheglov) This is bad, don't put / get raw FunctionType this way.
     _inferenceHelper.inferGenericInvocationExpression(
       node,
       node.methodName.staticType,
+      contextType: contextType,
     );
 
     DartType staticStaticType = _inferenceHelper.computeInvokeReturnType(
       node.staticInvokeType,
     );
-    _inferenceHelper.recordStaticType(node, staticStaticType);
+    _inferenceHelper.recordStaticType(node, staticStaticType,
+        contextType: contextType);
   }
 
   /// Given that we are accessing a property of the given [classElement] with the
@@ -356,13 +383,15 @@
       ExtensionElement extension,
       SimpleIdentifierImpl nameNode,
       String name,
-      List<WhyNotPromotedGetter> whyNotPromotedList) {
+      List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     var getter = extension.getGetter(name);
     if (getter != null) {
       getter = _resolver.toLegacyElement(getter);
       nameNode.staticElement = getter;
       _reportStaticAccessToInstanceMember(getter, nameNode);
-      _rewriteAsFunctionExpressionInvocation(node, getter.returnType);
+      _rewriteAsFunctionExpressionInvocation(node, getter.returnType,
+          contextType: contextType);
       return;
     }
 
@@ -371,11 +400,13 @@
       method = _resolver.toLegacyElement(method);
       nameNode.staticElement = method;
       _reportStaticAccessToInstanceMember(method, nameNode);
-      _setResolution(node, method.type, whyNotPromotedList);
+      _setResolution(node, method.type, whyNotPromotedList,
+          contextType: contextType);
       return;
     }
 
-    _setDynamicResolution(node, whyNotPromotedList: whyNotPromotedList);
+    _setDynamicResolution(node,
+        whyNotPromotedList: whyNotPromotedList, contextType: contextType);
     // This method is only called for named extensions, so we know that
     // `extension.name` is non-`null`.
     _resolver.errorReporter.reportErrorForNode(
@@ -390,12 +421,14 @@
       ExtensionOverride override,
       SimpleIdentifierImpl nameNode,
       String name,
-      List<WhyNotPromotedGetter> whyNotPromotedList) {
+      List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     var result = _extensionResolver.getOverrideMember(override, name);
     var member = _resolver.toLegacyElement(result.getter);
 
     if (member == null) {
-      _setDynamicResolution(node, whyNotPromotedList: whyNotPromotedList);
+      _setDynamicResolution(node,
+          whyNotPromotedList: whyNotPromotedList, contextType: contextType);
       // Extension overrides always refer to named extensions, so we can safely
       // assume `override.staticElement!.name` is non-`null`.
       _resolver.errorReporter.reportErrorForNode(
@@ -424,14 +457,17 @@
     nameNode.staticElement = member;
 
     if (member is PropertyAccessorElement) {
-      return _rewriteAsFunctionExpressionInvocation(node, member.returnType);
+      return _rewriteAsFunctionExpressionInvocation(node, member.returnType,
+          contextType: contextType);
     }
 
-    _setResolution(node, member.type, whyNotPromotedList);
+    _setResolution(node, member.type, whyNotPromotedList,
+        contextType: contextType);
   }
 
-  void _resolveReceiverDynamicBounded(MethodInvocationImpl node,
-      List<WhyNotPromotedGetter> whyNotPromotedList) {
+  void _resolveReceiverDynamicBounded(
+      MethodInvocationImpl node, List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     var nameNode = node.methodName;
 
     var objectElement = _typeSystem.typeProvider.objectElement;
@@ -458,19 +494,21 @@
 
     _setExplicitTypeArgumentTypes();
     _resolver.analyzeArgumentList(node.argumentList, null,
-        whyNotPromotedList: whyNotPromotedList);
+        whyNotPromotedList: whyNotPromotedList,
+        methodInvocationContext: contextType);
   }
 
   void _resolveReceiverFunctionBounded(
-    MethodInvocationImpl node,
-    Expression receiver,
-    DartType receiverType,
-    SimpleIdentifierImpl nameNode,
-    String name,
-    List<WhyNotPromotedGetter> whyNotPromotedList,
-  ) {
+      MethodInvocationImpl node,
+      Expression receiver,
+      DartType receiverType,
+      SimpleIdentifierImpl nameNode,
+      String name,
+      List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     if (name == FunctionElement.CALL_METHOD_NAME) {
-      _setResolution(node, receiverType, whyNotPromotedList);
+      _setResolution(node, receiverType, whyNotPromotedList,
+          contextType: contextType);
       // TODO(scheglov) Replace this with using FunctionType directly.
       // Here was erase resolution that _setResolution() sets.
       nameNode.staticElement = null;
@@ -486,15 +524,13 @@
       name: name,
       receiverErrorNode: nameNode,
       whyNotPromotedList: whyNotPromotedList,
+      contextType: contextType,
     );
   }
 
-  void _resolveReceiverNever(
-    MethodInvocationImpl node,
-    Expression receiver,
-    DartType receiverType,
-    List<WhyNotPromotedGetter> whyNotPromotedList,
-  ) {
+  void _resolveReceiverNever(MethodInvocationImpl node, Expression receiver,
+      DartType receiverType, List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     _setExplicitTypeArgumentTypes();
 
     if (receiverType == NeverTypeImpl.instanceNullable) {
@@ -508,9 +544,11 @@
           node,
           objectMember.type,
           whyNotPromotedList,
+          contextType: contextType,
         );
       } else {
-        _setDynamicResolution(node, whyNotPromotedList: whyNotPromotedList);
+        _setDynamicResolution(node,
+            whyNotPromotedList: whyNotPromotedList, contextType: contextType);
         _resolver.nullableDereferenceVerifier.report(
           CompileTimeErrorCode.UNCHECKED_METHOD_INVOCATION_OF_NULLABLE_VALUE,
           methodName,
@@ -525,7 +563,7 @@
       node.staticInvokeType = _dynamicType;
       node.staticType = NeverTypeImpl.instance;
 
-      _resolveArguments(node, whyNotPromotedList);
+      _resolveArguments(node, whyNotPromotedList, contextType: contextType);
 
       _resolver.errorReporter.reportErrorForNode(
         HintCode.RECEIVER_OF_TYPE_NEVER,
@@ -539,7 +577,7 @@
       node.staticInvokeType = _dynamicType;
       node.staticType = _dynamicType;
 
-      _resolveArguments(node, whyNotPromotedList);
+      _resolveArguments(node, whyNotPromotedList, contextType: contextType);
       return;
     }
   }
@@ -548,7 +586,8 @@
       MethodInvocationImpl node,
       SimpleIdentifierImpl nameNode,
       String name,
-      List<WhyNotPromotedGetter> whyNotPromotedList) {
+      List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     var element = nameNode.scopeLookupResult!.getter;
     if (element != null) {
       element = _resolver.toLegacyElement(element);
@@ -558,23 +597,28 @@
         element = multiply.conflictingElements[0];
       }
       if (element is PropertyAccessorElement) {
-        return _rewriteAsFunctionExpressionInvocation(node, element.returnType);
+        return _rewriteAsFunctionExpressionInvocation(node, element.returnType,
+            contextType: contextType);
       }
       if (element is ExecutableElement) {
-        return _setResolution(node, element.type, whyNotPromotedList);
+        return _setResolution(node, element.type, whyNotPromotedList,
+            contextType: contextType);
       }
       if (element is VariableElement) {
         _resolver.checkReadOfNotAssignedLocalVariable(nameNode, element);
         var targetType =
             _localVariableTypeProvider.getType(nameNode, isRead: true);
-        return _rewriteAsFunctionExpressionInvocation(node, targetType);
+        return _rewriteAsFunctionExpressionInvocation(node, targetType,
+            contextType: contextType);
       }
       // TODO(scheglov) This is a questionable distinction.
       if (element is PrefixElement) {
-        _setDynamicResolution(node, whyNotPromotedList: whyNotPromotedList);
+        _setDynamicResolution(node,
+            whyNotPromotedList: whyNotPromotedList, contextType: contextType);
         return _reportPrefixIdentifierNotFollowedByDot(nameNode);
       }
-      return _reportInvocationOfNonFunction(node, whyNotPromotedList);
+      return _reportInvocationOfNonFunction(node, whyNotPromotedList,
+          contextType: contextType);
     }
 
     DartType receiverType;
@@ -588,6 +632,7 @@
         prefix: null,
         name: node.methodName.name,
         whyNotPromotedList: whyNotPromotedList,
+        contextType: contextType,
       );
     }
 
@@ -599,6 +644,7 @@
       name: name,
       receiverErrorNode: nameNode,
       whyNotPromotedList: whyNotPromotedList,
+      contextType: contextType,
     );
   }
 
@@ -607,7 +653,8 @@
       PrefixElement prefix,
       SimpleIdentifierImpl nameNode,
       String name,
-      List<WhyNotPromotedGetter> whyNotPromotedList) {
+      List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     // Note: prefix?.bar is reported as an error in ElementResolver.
 
     if (name == FunctionElement.LOAD_LIBRARY_NAME) {
@@ -619,7 +666,8 @@
         if (element is ExecutableElement) {
           nameNode.staticElement = element;
           return _setResolution(
-              node, (element as ExecutableElement).type, whyNotPromotedList);
+              node, (element as ExecutableElement).type, whyNotPromotedList,
+              contextType: contextType);
         }
       }
     }
@@ -634,11 +682,13 @@
     }
 
     if (element is PropertyAccessorElement) {
-      return _rewriteAsFunctionExpressionInvocation(node, element.returnType);
+      return _rewriteAsFunctionExpressionInvocation(node, element.returnType,
+          contextType: contextType);
     }
 
     if (element is ExecutableElement) {
-      return _setResolution(node, element.type, whyNotPromotedList);
+      return _setResolution(node, element.type, whyNotPromotedList,
+          contextType: contextType);
     }
 
     _reportUndefinedFunction(
@@ -646,6 +696,7 @@
       prefix: prefix.name,
       name: name,
       whyNotPromotedList: whyNotPromotedList,
+      contextType: contextType,
     );
   }
 
@@ -654,10 +705,12 @@
       SuperExpression receiver,
       SimpleIdentifierImpl nameNode,
       String name,
-      List<WhyNotPromotedGetter> whyNotPromotedList) {
+      List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     var enclosingClass = _resolver.enclosingClass;
     if (SuperContext.of(receiver) != SuperContext.valid) {
-      _setDynamicResolution(node, whyNotPromotedList: whyNotPromotedList);
+      _setDynamicResolution(node,
+          whyNotPromotedList: whyNotPromotedList, contextType: contextType);
       return;
     }
 
@@ -672,9 +725,11 @@
     if (target != null) {
       nameNode.staticElement = target;
       if (target is PropertyAccessorElement) {
-        return _rewriteAsFunctionExpressionInvocation(node, target.returnType);
+        return _rewriteAsFunctionExpressionInvocation(node, target.returnType,
+            contextType: contextType);
       }
-      _setResolution(node, target.type, whyNotPromotedList);
+      _setResolution(node, target.type, whyNotPromotedList,
+          contextType: contextType);
       return;
     }
 
@@ -684,7 +739,8 @@
     target = _inheritance.getInherited2(enclosingClass, _currentName!);
     if (target != null) {
       nameNode.staticElement = target;
-      _setResolution(node, target.type, whyNotPromotedList);
+      _setResolution(node, target.type, whyNotPromotedList,
+          contextType: contextType);
 
       _resolver.errorReporter.reportErrorForNode(
           CompileTimeErrorCode.ABSTRACT_SUPER_MEMBER_REFERENCE,
@@ -694,7 +750,8 @@
     }
 
     // Nothing help, there is no target at all.
-    _setDynamicResolution(node, whyNotPromotedList: whyNotPromotedList);
+    _setDynamicResolution(node,
+        whyNotPromotedList: whyNotPromotedList, contextType: contextType);
     _resolver.errorReporter.reportErrorForNode(
         CompileTimeErrorCode.UNDEFINED_SUPER_METHOD,
         nameNode,
@@ -709,6 +766,7 @@
     required String name,
     required Expression receiverErrorNode,
     required List<WhyNotPromotedGetter> whyNotPromotedList,
+    required DartType? contextType,
   }) {
     var result = _resolver.typePropertyResolver.resolve(
       receiver: receiver,
@@ -731,12 +789,15 @@
       }
 
       if (target is PropertyAccessorElement) {
-        return _rewriteAsFunctionExpressionInvocation(node, target.returnType);
+        return _rewriteAsFunctionExpressionInvocation(node, target.returnType,
+            contextType: contextType);
       }
-      return _setResolution(node, target.type, whyNotPromotedList);
+      return _setResolution(node, target.type, whyNotPromotedList,
+          contextType: contextType);
     }
 
-    _setDynamicResolution(node, whyNotPromotedList: whyNotPromotedList);
+    _setDynamicResolution(node,
+        whyNotPromotedList: whyNotPromotedList, contextType: contextType);
 
     if (!result.needsGetterError) {
       return;
@@ -763,7 +824,8 @@
       ClassElement receiver,
       SimpleIdentifierImpl nameNode,
       String name,
-      List<WhyNotPromotedGetter> whyNotPromotedList) {
+      List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     if (node.isCascaded) {
       receiver = _typeType.element;
     }
@@ -775,16 +837,20 @@
         nameNode.staticElement = element;
         if (element is PropertyAccessorElement) {
           return _rewriteAsFunctionExpressionInvocation(
-              node, element.returnType);
+              node, element.returnType,
+              contextType: contextType);
         }
-        _setResolution(node, element.type, whyNotPromotedList);
+        _setResolution(node, element.type, whyNotPromotedList,
+            contextType: contextType);
       } else {
-        _reportInvocationOfNonFunction(node, whyNotPromotedList);
+        _reportInvocationOfNonFunction(node, whyNotPromotedList,
+            contextType: contextType);
       }
       return;
     }
 
-    _setDynamicResolution(node, whyNotPromotedList: whyNotPromotedList);
+    _setDynamicResolution(node,
+        whyNotPromotedList: whyNotPromotedList, contextType: contextType);
     if (nameNode.name == 'new') {
       // Attempting to invoke the unnamed constructor via `C.new(`.
       if (_resolver.isConstructorTearoffsEnabled) {
@@ -821,11 +887,11 @@
   /// an [InterfaceType]. So, it should be represented as instead as a
   /// [FunctionExpressionInvocation].
   void _rewriteAsFunctionExpressionInvocation(
-    MethodInvocationImpl node,
-    DartType getterReturnType,
-  ) {
+      MethodInvocationImpl node, DartType getterReturnType,
+      {required DartType? contextType}) {
     var targetType = _resolveTypeParameter(getterReturnType);
-    _inferenceHelper.recordStaticType(node.methodName, targetType);
+    _inferenceHelper.recordStaticType(node.methodName, targetType,
+        contextType: contextType);
 
     ExpressionImpl functionExpression;
     var target = node.target;
@@ -862,20 +928,22 @@
     );
     NodeReplacer.replace(node, invocation);
     node.setProperty(_rewriteResultKey, invocation);
-    InferenceContext.setTypeFromNode(invocation, node);
+    InferenceContext.setType(invocation, contextType);
     _resolver.flowAnalysis.transferTestData(node, invocation);
   }
 
   void _setDynamicResolution(MethodInvocationImpl node,
       {bool setNameTypeToDynamic = true,
-      required List<WhyNotPromotedGetter> whyNotPromotedList}) {
+      required List<WhyNotPromotedGetter> whyNotPromotedList,
+      required DartType? contextType}) {
     if (setNameTypeToDynamic) {
       node.methodName.staticType = _dynamicType;
     }
     node.staticInvokeType = _dynamicType;
     node.staticType = _dynamicType;
     _setExplicitTypeArgumentTypes();
-    _resolveArguments_finishInference(node, whyNotPromotedList);
+    _resolveArguments_finishInference(node, whyNotPromotedList,
+        contextType: contextType);
   }
 
   /// Set explicitly specified type argument types, or empty if not specified.
@@ -895,28 +963,36 @@
   }
 
   void _setResolution(MethodInvocationImpl node, DartType type,
-      List<WhyNotPromotedGetter> whyNotPromotedList) {
+      List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     // TODO(scheglov) We need this for StaticTypeAnalyzer to run inference.
     // But it seems weird. Do we need to know the raw type of a function?!
     node.methodName.staticType = type;
 
     if (type == _dynamicType || _isCoreFunction(type)) {
       _setDynamicResolution(node,
-          setNameTypeToDynamic: false, whyNotPromotedList: whyNotPromotedList);
+          setNameTypeToDynamic: false,
+          whyNotPromotedList: whyNotPromotedList,
+          contextType: contextType);
       return;
     }
 
     if (type is FunctionType) {
       _inferenceHelper.resolveMethodInvocation(
-          node: node, rawType: type, whyNotPromotedList: whyNotPromotedList);
+          node: node,
+          rawType: type,
+          whyNotPromotedList: whyNotPromotedList,
+          contextType: contextType);
       return;
     }
 
     if (type is VoidType) {
-      return _reportUseOfVoidType(node, node.methodName, whyNotPromotedList);
+      return _reportUseOfVoidType(node, node.methodName, whyNotPromotedList,
+          contextType: contextType);
     }
 
-    _reportInvocationOfNonFunction(node, whyNotPromotedList);
+    _reportInvocationOfNonFunction(node, whyNotPromotedList,
+        contextType: contextType);
   }
 
   /// Resolver visitor is separated from the elements resolver, which calls
diff --git a/pkg/analyzer/lib/src/dart/resolver/postfix_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/postfix_expression_resolver.dart
index f6d223d..4cc71c9 100644
--- a/pkg/analyzer/lib/src/dart/resolver/postfix_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/postfix_expression_resolver.dart
@@ -40,9 +40,9 @@
 
   TypeSystemImpl get _typeSystem => _resolver.typeSystem;
 
-  void resolve(PostfixExpressionImpl node) {
+  void resolve(PostfixExpressionImpl node, {required DartType? contextType}) {
     if (node.operator.type == TokenType.BANG) {
-      _resolveNullCheck(node);
+      _resolveNullCheck(node, contextType: contextType);
       return;
     }
 
@@ -65,7 +65,7 @@
 
     var receiverType = node.readType!;
     _resolve1(node, receiverType);
-    _resolve2(node, receiverType);
+    _resolve2(node, receiverType, contextType: contextType);
   }
 
   /// Check that the result [type] of a prefix or postfix `++` or `--`
@@ -155,11 +155,13 @@
     }
   }
 
-  void _resolve2(PostfixExpressionImpl node, DartType receiverType) {
+  void _resolve2(PostfixExpressionImpl node, DartType receiverType,
+      {required DartType? contextType}) {
     Expression operand = node.operand;
 
     if (identical(receiverType, NeverTypeImpl.instance)) {
-      _inferenceHelper.recordStaticType(node, NeverTypeImpl.instance);
+      _inferenceHelper.recordStaticType(node, NeverTypeImpl.instance,
+          contextType: contextType);
     } else {
       DartType operatorReturnType;
       if (receiverType.isDartCoreInt) {
@@ -179,11 +181,13 @@
       }
     }
 
-    _inferenceHelper.recordStaticType(node, receiverType);
+    _inferenceHelper.recordStaticType(node, receiverType,
+        contextType: contextType);
     _resolver.nullShortingTermination(node);
   }
 
-  void _resolveNullCheck(PostfixExpressionImpl node) {
+  void _resolveNullCheck(PostfixExpressionImpl node,
+      {required DartType? contextType}) {
     var operand = node.operand;
 
     if (operand is SuperExpression) {
@@ -191,12 +195,13 @@
         ParserErrorCode.MISSING_ASSIGNABLE_SELECTOR,
         node,
       );
-      _inferenceHelper.recordStaticType(operand, DynamicTypeImpl.instance);
-      _inferenceHelper.recordStaticType(node, DynamicTypeImpl.instance);
+      _inferenceHelper.recordStaticType(operand, DynamicTypeImpl.instance,
+          contextType: contextType);
+      _inferenceHelper.recordStaticType(node, DynamicTypeImpl.instance,
+          contextType: contextType);
       return;
     }
 
-    var contextType = InferenceContext.getContext(node);
     if (contextType != null && _isNonNullableByDefault) {
       contextType = _typeSystem.makeNullable(contextType);
     }
@@ -207,7 +212,7 @@
     var operandType = operand.typeOrThrow;
 
     var type = _typeSystem.promoteToNonNull(operandType);
-    _inferenceHelper.recordStaticType(node, type);
+    _inferenceHelper.recordStaticType(node, type, contextType: contextType);
 
     _resolver.nullShortingTermination(node);
     _resolver.flowAnalysis.flow?.nonNullAssert_end(operand);
diff --git a/pkg/analyzer/lib/src/dart/resolver/prefix_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/prefix_expression_resolver.dart
index 2feaac9..484e305 100644
--- a/pkg/analyzer/lib/src/dart/resolver/prefix_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/prefix_expression_resolver.dart
@@ -40,11 +40,11 @@
 
   TypeSystemImpl get _typeSystem => _resolver.typeSystem;
 
-  void resolve(PrefixExpressionImpl node) {
+  void resolve(PrefixExpressionImpl node, {required DartType? contextType}) {
     var operator = node.operator.type;
 
     if (operator == TokenType.BANG) {
-      _resolveNegation(node);
+      _resolveNegation(node, contextType: contextType);
       return;
     }
 
@@ -70,13 +70,13 @@
         // Negated integer literals should undergo int->double conversion in the
         // same circumstances as non-negated integer literals, so pass the
         // context type through.
-        innerContextType = InferenceContext.getContext(node);
+        innerContextType = contextType;
       }
       _resolver.analyzeExpression(operand, innerContextType);
     }
 
     _resolve1(node);
-    _resolve2(node);
+    _resolve2(node, contextType: contextType);
   }
 
   /// Check that the result [type] of a prefix or postfix `++` or `--`
@@ -189,10 +189,11 @@
     }
   }
 
-  void _resolve2(PrefixExpressionImpl node) {
+  void _resolve2(PrefixExpressionImpl node, {required DartType? contextType}) {
     TokenType operator = node.operator.type;
     if (identical(node.readType, NeverTypeImpl.instance)) {
-      _inferenceHelper.recordStaticType(node, NeverTypeImpl.instance);
+      _inferenceHelper.recordStaticType(node, NeverTypeImpl.instance,
+          contextType: contextType);
     } else {
       // The other cases are equivalent to invoking a method.
       var staticMethodElement = node.staticElement;
@@ -213,12 +214,14 @@
           }
         }
       }
-      _inferenceHelper.recordStaticType(node, staticType);
+      _inferenceHelper.recordStaticType(node, staticType,
+          contextType: contextType);
     }
     _resolver.nullShortingTermination(node);
   }
 
-  void _resolveNegation(PrefixExpressionImpl node) {
+  void _resolveNegation(PrefixExpressionImpl node,
+      {required DartType? contextType}) {
     var operand = node.operand;
 
     _resolver.analyzeExpression(operand, _typeProvider.boolType);
@@ -228,7 +231,8 @@
     _resolver.boolExpressionVerifier.checkForNonBoolNegationExpression(operand,
         whyNotPromoted: whyNotPromoted);
 
-    _inferenceHelper.recordStaticType(node, _typeProvider.boolType);
+    _inferenceHelper.recordStaticType(node, _typeProvider.boolType,
+        contextType: contextType);
 
     _resolver.flowAnalysis.flow?.logicalNot_end(node, operand);
   }
diff --git a/pkg/analyzer/lib/src/dart/resolver/prefixed_identifier_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/prefixed_identifier_resolver.dart
index 65abd1c..08996d4 100644
--- a/pkg/analyzer/lib/src/dart/resolver/prefixed_identifier_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/prefixed_identifier_resolver.dart
@@ -23,7 +23,7 @@
 
   TypeProviderImpl get _typeProvider => _resolver.typeProvider;
 
-  void resolve(PrefixedIdentifierImpl node) {
+  void resolve(PrefixedIdentifierImpl node, {required DartType? contextType}) {
     node.prefix.accept(_resolver);
 
     var resolver = PropertyElementResolver(_resolver);
@@ -44,8 +44,10 @@
     }
 
     if (identical(node.prefix.staticType, NeverTypeImpl.instance)) {
-      _inferenceHelper.recordStaticType(identifier, NeverTypeImpl.instance);
-      _inferenceHelper.recordStaticType(node, NeverTypeImpl.instance);
+      _inferenceHelper.recordStaticType(identifier, NeverTypeImpl.instance,
+          contextType: contextType);
+      _inferenceHelper.recordStaticType(node, NeverTypeImpl.instance,
+          contextType: contextType);
       return;
     }
 
@@ -94,10 +96,11 @@
       // sites.
       // TODO(srawlins): Switch all resolution to use the latter method, in a
       // breaking change release.
-      type = _inferenceHelper.inferTearOff(node, identifier, type);
+      type = _inferenceHelper.inferTearOff(node, identifier, type,
+          contextType: contextType);
     }
-    _inferenceHelper.recordStaticType(identifier, type);
-    _inferenceHelper.recordStaticType(node, type);
+    _inferenceHelper.recordStaticType(identifier, type, contextType: null);
+    _inferenceHelper.recordStaticType(node, type, contextType: contextType);
   }
 
   /// Return the type that should be recorded for a node that resolved to the given accessor.
diff --git a/pkg/analyzer/lib/src/dart/resolver/simple_identifier_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/simple_identifier_resolver.dart
index 16c0251..35266a2 100644
--- a/pkg/analyzer/lib/src/dart/resolver/simple_identifier_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/simple_identifier_resolver.dart
@@ -28,7 +28,7 @@
 
   TypeProviderImpl get _typeProvider => _resolver.typeProvider;
 
-  void resolve(SimpleIdentifierImpl node) {
+  void resolve(SimpleIdentifierImpl node, {required DartType? contextType}) {
     if (node.inDeclarationContext()) {
       return;
     }
@@ -38,7 +38,7 @@
     _resolver.checkReadOfNotAssignedLocalVariable(node, node.staticElement);
 
     _resolve1(node);
-    _resolve2(node);
+    _resolve2(node, contextType: contextType);
   }
 
   /// Return the type that should be recorded for a node that resolved to the given accessor.
@@ -189,7 +189,7 @@
     node.staticElement = element;
   }
 
-  void _resolve2(SimpleIdentifierImpl node) {
+  void _resolve2(SimpleIdentifierImpl node, {required DartType? contextType}) {
     var element = node.staticElement;
 
     if (element is ExtensionElement) {
@@ -242,10 +242,11 @@
       // sites.
       // TODO(srawlins): Switch all resolution to use the latter method, in a
       // breaking change release.
-      staticType =
-          _resolver.inferenceHelper.inferTearOff(node, node, staticType);
+      staticType = _resolver.inferenceHelper
+          .inferTearOff(node, node, staticType, contextType: contextType);
     }
-    _inferenceHelper.recordStaticType(node, staticType);
+    _inferenceHelper.recordStaticType(node, staticType,
+        contextType: contextType);
   }
 
   /// TODO(scheglov) this is duplicate
diff --git a/pkg/analyzer/lib/src/dart/resolver/typed_literal_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/typed_literal_resolver.dart
index dcde026..660a6eb 100644
--- a/pkg/analyzer/lib/src/dart/resolver/typed_literal_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/typed_literal_resolver.dart
@@ -95,7 +95,8 @@
         : NullabilitySuffix.star;
   }
 
-  void resolveListLiteral(ListLiteralImpl node) {
+  void resolveListLiteral(ListLiteralImpl node,
+      {required DartType? contextType}) {
     InterfaceType? listType;
 
     var typeArguments = node.typeArguments?.arguments;
@@ -107,7 +108,8 @@
         }
       }
     } else {
-      listType = _inferListType(node, downwards: true);
+      listType =
+          _inferListType(node, downwards: true, contextType: contextType);
     }
     CollectionLiteralContext? context;
     if (listType != null) {
@@ -119,15 +121,17 @@
 
     node.typeArguments?.accept(_resolver);
     _resolveElements(node.elements, context);
-    _resolveListLiteral2(node);
+    _resolveListLiteral2(node, contextType: contextType);
   }
 
-  void resolveSetOrMapLiteral(SetOrMapLiteral node) {
+  void resolveSetOrMapLiteral(SetOrMapLiteral node,
+      {required DartType? contextType}) {
     (node as SetOrMapLiteralImpl).becomeUnresolved();
     var typeArguments = node.typeArguments?.arguments;
 
     InterfaceType? literalType;
-    var literalResolution = _computeSetOrMapResolution(node);
+    var literalResolution =
+        _computeSetOrMapResolution(node, contextType: contextType);
     if (literalResolution.kind == _LiteralResolutionKind.set) {
       if (typeArguments != null && typeArguments.length == 1) {
         var elementType = typeArguments[0].typeOrThrow;
@@ -178,7 +182,7 @@
 
     node.typeArguments?.accept(_resolver);
     _resolveElements(node.elements, context);
-    _resolveSetOrMapLiteral2(node);
+    _resolveSetOrMapLiteral2(node, contextType: contextType);
   }
 
   DartType _computeElementType(CollectionElement element) {
@@ -240,10 +244,10 @@
   }
 
   /// Compute the context type for the given set or map [literal].
-  _LiteralResolution _computeSetOrMapResolution(SetOrMapLiteral literal) {
+  _LiteralResolution _computeSetOrMapResolution(SetOrMapLiteral literal,
+      {required DartType? contextType}) {
     _LiteralResolution typeArgumentsResolution =
         _fromTypeArguments(literal.typeArguments?.arguments);
-    var contextType = InferenceContext.getContext(literal);
     _LiteralResolution contextResolution = _fromContextType(contextType);
     _LeafElements elementCounts = _LeafElements(_getSetOrMapElements(literal));
     _LiteralResolution elementResolution = elementCounts.resolution;
@@ -446,9 +450,8 @@
     }
   }
 
-  InterfaceType? _inferListType(ListLiteral node, {bool downwards = false}) {
-    var contextType = InferenceContext.getContext(node);
-
+  InterfaceType? _inferListType(ListLiteral node,
+      {bool downwards = false, required DartType? contextType}) {
     var element = _typeProvider.listElement;
     var typeParameters = element.typeParameters;
     var genericElementType = typeParameters[0].instantiate(
@@ -628,7 +631,8 @@
     }
   }
 
-  void _resolveListLiteral2(ListLiteralImpl node) {
+  void _resolveListLiteral2(ListLiteralImpl node,
+      {required DartType? contextType}) {
     var typeArguments = node.typeArguments?.arguments;
 
     // If we have explicit arguments, use them.
@@ -647,7 +651,7 @@
     DartType listDynamicType = _typeProvider.listType(_dynamicType);
 
     // If there are no type arguments, try to infer some arguments.
-    var inferred = _inferListType(node);
+    var inferred = _inferListType(node, contextType: contextType);
 
     if (inferred != listDynamicType) {
       // TODO(brianwilkerson) Determine whether we need to make the inferred
@@ -660,7 +664,8 @@
     node.staticType = listDynamicType;
   }
 
-  void _resolveSetOrMapLiteral2(SetOrMapLiteralImpl node) {
+  void _resolveSetOrMapLiteral2(SetOrMapLiteralImpl node,
+      {required DartType? contextType}) {
     var typeArguments = node.typeArguments?.arguments;
 
     // If we have type arguments, use them.
@@ -700,7 +705,7 @@
     }
     if (_strictInference &&
         _getSetOrMapElements(node).isEmpty &&
-        InferenceContext.getContext(node) == null) {
+        contextType == null) {
       // We cannot infer the type of a collection literal with no elements, and
       // no context type. If there are any elements, inference has not failed,
       // as the types of those elements are considered resolved.
diff --git a/pkg/analyzer/lib/src/error/codes.g.dart b/pkg/analyzer/lib/src/error/codes.g.dart
index ff21e56..6b15d00 100644
--- a/pkg/analyzer/lib/src/error/codes.g.dart
+++ b/pkg/analyzer/lib/src/error/codes.g.dart
@@ -3705,6 +3705,13 @@
     correctionMessage: "Try adding a body to '{0}'.",
   );
 
+  static const CompileTimeErrorCode ENUM_WITH_NAME_VALUES =
+      CompileTimeErrorCode(
+    'ENUM_WITH_NAME_VALUES',
+    "The name 'values' is not a valid name for an enum.",
+    correctionMessage: "Try using a different name.",
+  );
+
   /**
    * No parameters.
    */
diff --git a/pkg/analyzer/lib/src/error/duplicate_definition_verifier.dart b/pkg/analyzer/lib/src/error/duplicate_definition_verifier.dart
index 7f5aba1..623f429 100644
--- a/pkg/analyzer/lib/src/error/duplicate_definition_verifier.dart
+++ b/pkg/analyzer/lib/src/error/duplicate_definition_verifier.dart
@@ -97,6 +97,13 @@
       }
     }
 
+    if (enumName == 'values') {
+      _errorReporter.reportErrorForNode(
+        CompileTimeErrorCode.ENUM_WITH_NAME_VALUES,
+        node.name,
+      );
+    }
+
     for (var constant in node.constants) {
       if (constant.name.name == enumName) {
         _errorReporter.reportErrorForNode(
diff --git a/pkg/analyzer/lib/src/error/inheritance_override.dart b/pkg/analyzer/lib/src/error/inheritance_override.dart
index b55e65d..d82f871 100644
--- a/pkg/analyzer/lib/src/error/inheritance_override.dart
+++ b/pkg/analyzer/lib/src/error/inheritance_override.dart
@@ -242,10 +242,16 @@
 
         // No concrete implementation of the name.
         if (concreteElement == null) {
-          if (!_reportConcreteClassWithAbstractMember(name.name)) {
-            inheritedAbstract ??= [];
-            inheritedAbstract.add(interfaceElement);
+          if (_reportConcreteClassWithAbstractMember(name.name)) {
+            continue;
           }
+          // We already reported ILLEGAL_ENUM_VALUES_INHERITANCE.
+          if (classElement.isEnum &&
+              const {'values', 'values='}.contains(name.name)) {
+            continue;
+          }
+          inheritedAbstract ??= [];
+          inheritedAbstract.add(interfaceElement);
           continue;
         }
 
@@ -661,12 +667,15 @@
 
     if (implementsDartCoreEnum) {
       var concreteMap = inheritance.getInheritedConcreteMap2(classElement);
-      for (var memberName in const ['hashCode', '==']) {
+
+      void checkSingle(
+        String memberName,
+        bool Function(ClassElement enclosingClass) filter,
+      ) {
         var member = concreteMap[Name(libraryUri, memberName)];
         if (member != null) {
           var enclosingClass = member.enclosingElement;
-          if (enclosingClass is ClassElement &&
-              !enclosingClass.isDartCoreObject) {
+          if (enclosingClass is ClassElement && filter(enclosingClass)) {
             reporter.reportErrorForNode(
               CompileTimeErrorCode.ILLEGAL_CONCRETE_ENUM_MEMBER_INHERITANCE,
               classNameNode,
@@ -675,6 +684,10 @@
           }
         }
       }
+
+      checkSingle('hashCode', (e) => !e.isDartCoreObject);
+      checkSingle('==', (e) => !e.isDartCoreObject);
+      checkSingle('index', (e) => !e.isDartCoreEnum);
     }
   }
 
diff --git a/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart b/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart
index 3ac61b3..dcac77f 100644
--- a/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart
+++ b/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart
@@ -103,6 +103,12 @@
   @override
   void visitEnumConstantDeclaration(EnumConstantDeclaration node) {
     usedElements.addElement(node.constructorElement?.declaration);
+
+    var argumentList = node.arguments?.argumentList;
+    if (argumentList != null) {
+      _addParametersForArguments(argumentList);
+    }
+
     super.visitEnumConstantDeclaration(node);
   }
 
@@ -140,10 +146,7 @@
 
   @override
   void visitInstanceCreationExpression(InstanceCreationExpression node) {
-    for (var argument in node.argumentList.arguments) {
-      var parameter = argument.staticParameterElement;
-      usedElements.addElement(parameter);
-    }
+    _addParametersForArguments(node.argumentList);
     super.visitInstanceCreationExpression(node);
   }
 
@@ -174,10 +177,7 @@
   void visitMethodInvocation(MethodInvocation node) {
     var function = node.methodName.staticElement;
     if (function is FunctionElement || function is MethodElement) {
-      for (var argument in node.argumentList.arguments) {
-        var parameter = argument.staticParameterElement;
-        usedElements.addElement(parameter);
-      }
+      _addParametersForArguments(node.argumentList);
     }
     super.visitMethodInvocation(node);
   }
@@ -297,6 +297,13 @@
     }
   }
 
+  void _addParametersForArguments(ArgumentList argumentList) {
+    for (var argument in argumentList.arguments) {
+      var parameter = argument.staticParameterElement;
+      usedElements.addElement(parameter);
+    }
+  }
+
   /// Marks the [element] of [node] as used in the library.
   void _useIdentifierElement(
     Identifier node,
diff --git a/pkg/analyzer/lib/src/fasta/ast_builder.dart b/pkg/analyzer/lib/src/fasta/ast_builder.dart
index f71b79fc..8be5c6d 100644
--- a/pkg/analyzer/lib/src/fasta/ast_builder.dart
+++ b/pkg/analyzer/lib/src/fasta/ast_builder.dart
@@ -269,18 +269,6 @@
         // Pretend that 'macro' didn't occur while this feature is incomplete.
         macroToken = null;
       }
-      if (augmentToken != null) {
-        var feature = ExperimentalFeatures.macros;
-        handleRecoverableError(
-            templateExperimentNotEnabled.withArguments(
-              feature.enableString,
-              _versionAsString(ExperimentStatus.currentVersion),
-            ),
-            augmentToken,
-            augmentToken);
-        // Pretend that 'augment' didn't occur while this feature is incomplete.
-        augmentToken = null;
-      }
     }
     push(macroToken ?? NullValue.Token);
     push(augmentToken ?? NullValue.Token);
@@ -406,10 +394,12 @@
   }
 
   @override
-  void beginMixinDeclaration(Token mixinKeyword, Token name) {
+  void beginMixinDeclaration(
+      Token? augmentToken, Token mixinKeyword, Token name) {
     assert(classDeclaration == null &&
         mixinDeclaration == null &&
         extensionDeclaration == null);
+    push(augmentToken ?? NullValue.Token);
   }
 
   @override
@@ -429,26 +419,17 @@
         // Pretend that 'macro' didn't occur while this feature is incomplete.
         macroToken = null;
       }
-      if (augmentToken != null) {
-        var feature = ExperimentalFeatures.macros;
-        handleRecoverableError(
-            templateExperimentNotEnabled.withArguments(
-              feature.enableString,
-              _versionAsString(ExperimentStatus.currentVersion),
-            ),
-            augmentToken,
-            augmentToken);
-        // Pretend that 'augment' didn't occur while this feature is incomplete.
-        augmentToken = null;
-      }
     }
     push(macroToken ?? NullValue.Token);
     push(augmentToken ?? NullValue.Token);
   }
 
   @override
-  void beginTopLevelMethod(Token lastConsumed, Token? externalToken) {
-    push(_Modifiers()..externalKeyword = externalToken);
+  void beginTopLevelMethod(
+      Token lastConsumed, Token? augmentToken, Token? externalToken) {
+    push(_Modifiers()
+      ..augmentKeyword = augmentToken
+      ..externalKeyword = externalToken);
   }
 
   @override
@@ -975,6 +956,7 @@
   @override
   void endClassFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -1026,6 +1008,7 @@
         comment: comment,
         metadata: metadata,
         abstractKeyword: abstractToken,
+        augmentKeyword: augmentToken,
         covariantKeyword: covariantKeyword,
         externalKeyword: externalToken,
         staticKeyword: staticToken,
@@ -1402,6 +1385,7 @@
   @override
   void endExtensionFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -1416,8 +1400,17 @@
       // an error at this point, but we include them in order to get navigation,
       // search, etc.
     }
-    endClassFields(abstractToken, externalToken, staticToken, covariantToken,
-        lateToken, varFinalOrConst, count, beginToken, endToken);
+    endClassFields(
+        abstractToken,
+        augmentToken,
+        externalToken,
+        staticToken,
+        covariantToken,
+        lateToken,
+        varFinalOrConst,
+        count,
+        beginToken,
+        endToken);
   }
 
   @override
@@ -1992,7 +1985,7 @@
     FunctionExpression functionExpression =
         ast.functionExpression(typeParameters, parameters, body);
     var functionDeclaration = ast.functionDeclaration(
-        null, metadata, null, returnType, null, name, functionExpression);
+        null, metadata, null, null, returnType, null, name, functionExpression);
     push(ast.functionDeclarationStatement(functionDeclaration));
   }
 
@@ -2068,6 +2061,7 @@
   @override
   void endMixinFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -2076,8 +2070,17 @@
       int count,
       Token beginToken,
       Token endToken) {
-    endClassFields(abstractToken, externalToken, staticToken, covariantToken,
-        lateToken, varFinalOrConst, count, beginToken, endToken);
+    endClassFields(
+        abstractToken,
+        augmentToken,
+        externalToken,
+        staticToken,
+        covariantToken,
+        lateToken,
+        varFinalOrConst,
+        count,
+        beginToken,
+        endToken);
   }
 
   @override
@@ -2401,12 +2404,14 @@
     var name = pop() as SimpleIdentifier;
     var returnType = pop() as TypeAnnotation?;
     var modifiers = pop() as _Modifiers?;
+    var augmentKeyword = modifiers?.augmentKeyword;
     var externalKeyword = modifiers?.externalKeyword;
     var metadata = pop() as List<Annotation>?;
     var comment = _findComment(metadata, beginToken);
     declarations.add(ast.functionDeclaration(
         comment,
         metadata,
+        augmentKeyword,
         externalKeyword,
         returnType,
         getOrSet,
@@ -3564,6 +3569,7 @@
 
     var implementsClause = pop(NullValue.IdentifierList) as ImplementsClause?;
     var onClause = pop(NullValue.IdentifierList) as OnClause?;
+    var augmentKeyword = pop(NullValue.Token) as Token?;
     var typeParameters = pop() as TypeParameterList?;
     var name = pop() as SimpleIdentifier;
     var metadata = pop() as List<Annotation>?;
@@ -3572,6 +3578,7 @@
     mixinDeclaration = ast.mixinDeclaration(
       comment,
       metadata,
+      augmentKeyword,
       mixinKeyword,
       name,
       typeParameters,
@@ -4370,6 +4377,7 @@
 /// of modifiers.
 class _Modifiers {
   Token? abstractKeyword;
+  Token? augmentKeyword;
   Token? externalKeyword;
   Token? finalConstOrVarKeyword;
   Token? staticKeyword;
diff --git a/pkg/analyzer/lib/src/generated/element_resolver.dart b/pkg/analyzer/lib/src/generated/element_resolver.dart
index 07b58e3..93bcdab 100644
--- a/pkg/analyzer/lib/src/generated/element_resolver.dart
+++ b/pkg/analyzer/lib/src/generated/element_resolver.dart
@@ -271,10 +271,12 @@
   }
 
   void visitMethodInvocation(MethodInvocation node,
-      {List<WhyNotPromotedGetter>? whyNotPromotedList}) {
+      {List<WhyNotPromotedGetter>? whyNotPromotedList,
+      required DartType? contextType}) {
     whyNotPromotedList ??= [];
     _methodInvocationResolver.resolve(
-        node as MethodInvocationImpl, whyNotPromotedList);
+        node as MethodInvocationImpl, whyNotPromotedList,
+        contextType: contextType);
   }
 
   void visitMixinDeclaration(MixinDeclaration node) {
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
index 97dc545..f2eb111 100644
--- a/pkg/analyzer/lib/src/generated/resolver.dart
+++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -163,12 +163,6 @@
       node?.setProperty(_typeProperty, type);
     }
   }
-
-  /// Attach contextual type information [type] to [node] for use during
-  /// inference.
-  static void setTypeFromNode(AstNode innerNode, AstNode outerNode) {
-    setType(innerNode, getContext(outerNode));
-  }
 }
 
 /// Instances of the class `ResolverVisitor` are used to resolve the nodes
@@ -454,13 +448,13 @@
   void analyzeArgumentList(
       ArgumentList node, List<ParameterElement>? parameters,
       {bool isIdentical = false,
-      List<WhyNotPromotedGetter>? whyNotPromotedList}) {
+      List<WhyNotPromotedGetter>? whyNotPromotedList,
+      DartType? methodInvocationContext}) {
     whyNotPromotedList ??= [];
     NodeList<Expression> arguments = node.arguments;
     var namedParameters = <String, ParameterElement>{};
     DartType? targetType;
     Element? methodElement;
-    DartType? invocationContext;
     if (parameters != null) {
       for (var i = 0; i < parameters.length; i++) {
         var parameter = parameters[i];
@@ -473,7 +467,6 @@
       if (parent is MethodInvocation) {
         targetType = parent.realTarget?.staticType;
         methodElement = parent.methodName.staticElement;
-        invocationContext = InferenceContext.getContext(parent);
       }
     }
     checkUnreachableNode(node);
@@ -501,8 +494,8 @@
       if (parameter != null) {
         var parameterType = parameter.type;
         if (targetType != null) {
-          contextType = typeSystem.refineNumericInvocationContext(
-              targetType, methodElement, invocationContext, parameterType);
+          contextType = typeSystem.refineNumericInvocationContext(targetType,
+              methodElement, methodInvocationContext, parameterType);
         } else {
           contextType = parameterType;
         }
@@ -740,7 +733,8 @@
   ///
   /// If an [FunctionReference] is inserted, returns it; otherwise, returns
   /// [expression].
-  ExpressionImpl insertGenericFunctionInstantiation(Expression expression) {
+  ExpressionImpl insertGenericFunctionInstantiation(Expression expression,
+      {required DartType? contextType}) {
     expression as ExpressionImpl;
     if (!isConstructorTearoffsEnabled) {
       // Temporarily, only create [ImplicitCallReference] nodes under the
@@ -751,7 +745,7 @@
     }
 
     var staticType = expression.staticType;
-    var context = InferenceContext.getContext(expression);
+    var context = contextType;
     if (context == null ||
         staticType is! FunctionType ||
         staticType.typeFormals.isEmpty) {
@@ -1071,9 +1065,11 @@
 
   @override
   void visitAdjacentStrings(AdjacentStrings node) {
+    var contextType = InferenceContext.getContext(node);
     checkUnreachableNode(node);
     node.visitChildren(this);
-    typeAnalyzer.visitAdjacentStrings(node as AdjacentStringsImpl);
+    typeAnalyzer.visitAdjacentStrings(node as AdjacentStringsImpl,
+        contextType: contextType);
   }
 
   @override
@@ -1094,11 +1090,15 @@
 
   @override
   void visitAsExpression(AsExpression node) {
+    var contextType = InferenceContext.getContext(node);
     checkUnreachableNode(node);
     node.visitChildren(this);
-    typeAnalyzer.visitAsExpression(node as AsExpressionImpl);
+    typeAnalyzer.visitAsExpression(node as AsExpressionImpl,
+        contextType: contextType);
     flowAnalysis.asExpression(node);
-    _insertImplicitCallReference(insertGenericFunctionInstantiation(node));
+    _insertImplicitCallReference(
+        insertGenericFunctionInstantiation(node, contextType: contextType),
+        contextType: contextType);
   }
 
   @override
@@ -1131,8 +1131,12 @@
 
   @override
   void visitAssignmentExpression(AssignmentExpression node) {
-    _assignmentExpressionResolver.resolve(node as AssignmentExpressionImpl);
-    _insertImplicitCallReference(insertGenericFunctionInstantiation(node));
+    var contextType = InferenceContext.getContext(node);
+    _assignmentExpressionResolver.resolve(node as AssignmentExpressionImpl,
+        contextType: contextType);
+    _insertImplicitCallReference(
+        insertGenericFunctionInstantiation(node, contextType: contextType),
+        contextType: contextType);
   }
 
   @override
@@ -1144,19 +1148,25 @@
     }
     checkUnreachableNode(node);
     analyzeExpression(node.expression, futureUnion);
-    typeAnalyzer.visitAwaitExpression(node as AwaitExpressionImpl);
-    _insertImplicitCallReference(insertGenericFunctionInstantiation(node));
+    typeAnalyzer.visitAwaitExpression(node as AwaitExpressionImpl,
+        contextType: contextType);
+    _insertImplicitCallReference(
+        insertGenericFunctionInstantiation(node, contextType: contextType),
+        contextType: contextType);
   }
 
   @override
   void visitBinaryExpression(BinaryExpression node) {
+    var contextType = InferenceContext.getContext(node);
     var migrationResolutionHooks = this.migrationResolutionHooks;
     if (migrationResolutionHooks != null) {
-      migrationResolutionHooks.reportBinaryExpressionContext(
-          node, InferenceContext.getContext(node));
+      migrationResolutionHooks.reportBinaryExpressionContext(node, contextType);
     }
-    _binaryExpressionResolver.resolve(node as BinaryExpressionImpl);
-    _insertImplicitCallReference(insertGenericFunctionInstantiation(node));
+    _binaryExpressionResolver.resolve(node as BinaryExpressionImpl,
+        contextType: contextType);
+    _insertImplicitCallReference(
+        insertGenericFunctionInstantiation(node, contextType: contextType),
+        contextType: contextType);
   }
 
   @override
@@ -1182,10 +1192,12 @@
 
   @override
   void visitBooleanLiteral(BooleanLiteral node) {
+    var contextType = InferenceContext.getContext(node);
     flowAnalysis.flow?.booleanLiteral(node, node.value);
     checkUnreachableNode(node);
     node.visitChildren(this);
-    typeAnalyzer.visitBooleanLiteral(node as BooleanLiteralImpl);
+    typeAnalyzer.visitBooleanLiteral(node as BooleanLiteralImpl,
+        contextType: contextType);
   }
 
   @override
@@ -1200,7 +1212,8 @@
 
   @override
   void visitCascadeExpression(covariant CascadeExpressionImpl node) {
-    analyzeExpression(node.target, InferenceContext.getContext(node));
+    var contextType = InferenceContext.getContext(node);
+    analyzeExpression(node.target, contextType);
 
     if (node.isNullAware) {
       flowAnalysis.flow!.nullAwareAccess_rightBegin(
@@ -1210,10 +1223,10 @@
 
     node.cascadeSections.accept(this);
 
-    typeAnalyzer.visitCascadeExpression(node);
+    typeAnalyzer.visitCascadeExpression(node, contextType: contextType);
 
     nullShortingTermination(node);
-    _insertImplicitCallReference(node);
+    _insertImplicitCallReference(node, contextType: contextType);
   }
 
   @override
@@ -1308,8 +1321,9 @@
     }
     elseExpression = node.elseExpression;
 
-    typeAnalyzer.visitConditionalExpression(node as ConditionalExpressionImpl);
-    _insertImplicitCallReference(node);
+    typeAnalyzer.visitConditionalExpression(node as ConditionalExpressionImpl,
+        contextType: contextType);
+    _insertImplicitCallReference(node, contextType: contextType);
   }
 
   @override
@@ -1386,8 +1400,9 @@
 
   @override
   void visitConstructorReference(covariant ConstructorReferenceImpl node) {
-    _constructorReferenceResolver.resolve(node);
-    _insertImplicitCallReference(node);
+    var contextType = InferenceContext.getContext(node);
+    _constructorReferenceResolver.resolve(node, contextType: contextType);
+    _insertImplicitCallReference(node, contextType: contextType);
   }
 
   @override
@@ -1449,9 +1464,11 @@
 
   @override
   void visitDoubleLiteral(DoubleLiteral node) {
+    var contextType = InferenceContext.getContext(node);
     checkUnreachableNode(node);
     node.visitChildren(this);
-    typeAnalyzer.visitDoubleLiteral(node as DoubleLiteralImpl);
+    typeAnalyzer.visitDoubleLiteral(node as DoubleLiteralImpl,
+        contextType: contextType);
   }
 
   @override
@@ -1746,26 +1763,30 @@
 
   @override
   void visitFunctionExpression(covariant FunctionExpressionImpl node) {
+    var contextType = InferenceContext.getContext(node);
     var outerFunction = _enclosingFunction;
     _enclosingFunction = node.declaredElement;
 
-    _functionExpressionResolver.resolve(node);
-    insertGenericFunctionInstantiation(node);
+    _functionExpressionResolver.resolve(node, contextType: contextType);
+    insertGenericFunctionInstantiation(node, contextType: contextType);
 
     _enclosingFunction = outerFunction;
   }
 
   @override
   void visitFunctionExpressionInvocation(FunctionExpressionInvocation node) {
+    var contextType = InferenceContext.getContext(node);
     var whyNotPromotedList = <Map<DartType, NonPromotionReason> Function()>[];
     node.function.accept(this);
     _functionExpressionInvocationResolver.resolve(
-        node as FunctionExpressionInvocationImpl, whyNotPromotedList);
+        node as FunctionExpressionInvocationImpl, whyNotPromotedList,
+        contextType: contextType);
     nullShortingTermination(node);
-    var replacement = insertGenericFunctionInstantiation(node);
+    var replacement =
+        insertGenericFunctionInstantiation(node, contextType: contextType);
     checkForArgumentTypesNotAssignableInList(
         node.argumentList, whyNotPromotedList);
-    _insertImplicitCallReference(replacement);
+    _insertImplicitCallReference(replacement, contextType: contextType);
   }
 
   @override
@@ -1865,7 +1886,8 @@
   @override
   void visitImplicitCallReference(ImplicitCallReference node) {
     checkUnreachableNode(node);
-    node.visitChildren(this);
+    analyzeExpression(node.expression, null);
+    node.typeArguments?.accept(this);
   }
 
   @override
@@ -1877,6 +1899,7 @@
 
   @override
   void visitIndexExpression(covariant IndexExpressionImpl node) {
+    var contextType = InferenceContext.getContext(node);
     node.target?.accept(this);
     startNullAwareIndexExpression(node);
 
@@ -1906,25 +1929,29 @@
     } else {
       type = DynamicTypeImpl.instance;
     }
-    inferenceHelper.recordStaticType(node, type);
-    var replacement = insertGenericFunctionInstantiation(node);
+    inferenceHelper.recordStaticType(node, type, contextType: contextType);
+    var replacement =
+        insertGenericFunctionInstantiation(node, contextType: contextType);
 
     nullShortingTermination(node);
-    _insertImplicitCallReference(replacement);
+    _insertImplicitCallReference(replacement, contextType: contextType);
   }
 
   @override
   void visitInstanceCreationExpression(
       covariant InstanceCreationExpressionImpl node) {
-    _instanceCreationExpressionResolver.resolve(node);
-    _insertImplicitCallReference(node);
+    var contextType = InferenceContext.getContext(node);
+    _instanceCreationExpressionResolver.resolve(node, contextType: contextType);
+    _insertImplicitCallReference(node, contextType: contextType);
   }
 
   @override
   void visitIntegerLiteral(IntegerLiteral node) {
+    var contextType = InferenceContext.getContext(node);
     checkUnreachableNode(node);
     node.visitChildren(this);
-    typeAnalyzer.visitIntegerLiteral(node as IntegerLiteralImpl);
+    typeAnalyzer.visitIntegerLiteral(node as IntegerLiteralImpl,
+        contextType: contextType);
   }
 
   @override
@@ -1941,9 +1968,11 @@
 
   @override
   void visitIsExpression(IsExpression node) {
+    var contextType = InferenceContext.getContext(node);
     checkUnreachableNode(node);
     node.visitChildren(this);
-    typeAnalyzer.visitIsExpression(node as IsExpressionImpl);
+    typeAnalyzer.visitIsExpression(node as IsExpressionImpl,
+        contextType: contextType);
     flowAnalysis.isExpression(node);
   }
 
@@ -1970,8 +1999,9 @@
 
   @override
   void visitListLiteral(covariant ListLiteralImpl node) {
+    var contextType = InferenceContext.getContext(node);
     checkUnreachableNode(node);
-    _typedLiteralResolver.resolveListLiteral(node);
+    _typedLiteralResolver.resolveListLiteral(node, contextType: contextType);
   }
 
   @override
@@ -2021,6 +2051,7 @@
 
   @override
   void visitMethodInvocation(covariant MethodInvocationImpl node) {
+    var contextType = InferenceContext.getContext(node);
     var whyNotPromotedList = <Map<DartType, NonPromotionReason> Function()>[];
     var target = node.target;
     target?.accept(this);
@@ -2042,20 +2073,22 @@
 
     node.typeArguments?.accept(this);
     elementResolver.visitMethodInvocation(node,
-        whyNotPromotedList: whyNotPromotedList);
+        whyNotPromotedList: whyNotPromotedList, contextType: contextType);
 
     var functionRewrite = MethodInvocationResolver.getRewriteResult(node);
     if (functionRewrite != null) {
       _resolveRewrittenFunctionExpressionInvocation(
-          functionRewrite, whyNotPromotedList);
+          functionRewrite, whyNotPromotedList,
+          contextType: contextType);
       nullShortingTermination(node, discardType: true);
     } else {
       nullShortingTermination(node);
     }
-    var replacement = insertGenericFunctionInstantiation(node);
+    var replacement =
+        insertGenericFunctionInstantiation(node, contextType: contextType);
     checkForArgumentTypesNotAssignableInList(
         node.argumentList, whyNotPromotedList);
-    _insertImplicitCallReference(replacement);
+    _insertImplicitCallReference(replacement, contextType: contextType);
   }
 
   @override
@@ -2080,7 +2113,8 @@
     checkUnreachableNode(node);
     node.name.accept(this);
     analyzeExpression(node.expression, contextType);
-    typeAnalyzer.visitNamedExpression(node as NamedExpressionImpl);
+    typeAnalyzer.visitNamedExpression(node as NamedExpressionImpl,
+        contextType: contextType);
     // Any "why not promoted" information that flow analysis had associated with
     // `node.expression` now needs to be forwarded to `node`, so that when
     // `visitArgumentList` iterates through the arguments, it will find it.
@@ -2112,10 +2146,12 @@
 
   @override
   void visitNullLiteral(NullLiteral node) {
+    var contextType = InferenceContext.getContext(node);
     flowAnalysis.flow?.nullLiteral(node);
     checkUnreachableNode(node);
     node.visitChildren(this);
-    typeAnalyzer.visitNullLiteral(node as NullLiteralImpl);
+    typeAnalyzer.visitNullLiteral(node as NullLiteralImpl,
+        contextType: contextType);
   }
 
   @override
@@ -2126,10 +2162,12 @@
 
   @override
   void visitParenthesizedExpression(ParenthesizedExpression node) {
+    var contextType = InferenceContext.getContext(node);
     checkUnreachableNode(node);
-    analyzeExpression(node.expression, InferenceContext.getContext(node));
-    typeAnalyzer
-        .visitParenthesizedExpression(node as ParenthesizedExpressionImpl);
+    analyzeExpression(node.expression, contextType);
+    typeAnalyzer.visitParenthesizedExpression(
+        node as ParenthesizedExpressionImpl,
+        contextType: contextType);
     flowAnalysis.flow?.parenthesizedExpression(node, node.expression);
   }
 
@@ -2149,24 +2187,36 @@
 
   @override
   void visitPostfixExpression(PostfixExpression node) {
-    _postfixExpressionResolver.resolve(node as PostfixExpressionImpl);
-    _insertImplicitCallReference(insertGenericFunctionInstantiation(node));
+    var contextType = InferenceContext.getContext(node);
+    _postfixExpressionResolver.resolve(node as PostfixExpressionImpl,
+        contextType: contextType);
+    _insertImplicitCallReference(
+        insertGenericFunctionInstantiation(node, contextType: contextType),
+        contextType: contextType);
   }
 
   @override
   void visitPrefixedIdentifier(covariant PrefixedIdentifierImpl node) {
-    _prefixedIdentifierResolver.resolve(node);
-    _insertImplicitCallReference(insertGenericFunctionInstantiation(node));
+    var contextType = InferenceContext.getContext(node);
+    _prefixedIdentifierResolver.resolve(node, contextType: contextType);
+    _insertImplicitCallReference(
+        insertGenericFunctionInstantiation(node, contextType: contextType),
+        contextType: contextType);
   }
 
   @override
   void visitPrefixExpression(PrefixExpression node) {
-    _prefixExpressionResolver.resolve(node as PrefixExpressionImpl);
-    _insertImplicitCallReference(insertGenericFunctionInstantiation(node));
+    var contextType = InferenceContext.getContext(node);
+    _prefixExpressionResolver.resolve(node as PrefixExpressionImpl,
+        contextType: contextType);
+    _insertImplicitCallReference(
+        insertGenericFunctionInstantiation(node, contextType: contextType),
+        contextType: contextType);
   }
 
   @override
   void visitPropertyAccess(covariant PropertyAccessImpl node) {
+    var contextType = InferenceContext.getContext(node);
     node.target?.accept(this);
     startNullAwarePropertyAccess(node);
 
@@ -2199,15 +2249,17 @@
       // sites.
       // TODO(srawlins): Switch all resolution to use the latter method, in a
       // breaking change release.
-      type = inferenceHelper.inferTearOff(node, propertyName, type);
+      type = inferenceHelper.inferTearOff(node, propertyName, type,
+          contextType: contextType);
     }
 
-    inferenceHelper.recordStaticType(propertyName, type);
-    inferenceHelper.recordStaticType(node, type);
-    var replacement = insertGenericFunctionInstantiation(node);
+    inferenceHelper.recordStaticType(propertyName, type, contextType: null);
+    inferenceHelper.recordStaticType(node, type, contextType: contextType);
+    var replacement =
+        insertGenericFunctionInstantiation(node, contextType: contextType);
 
     nullShortingTermination(node);
-    _insertImplicitCallReference(replacement);
+    _insertImplicitCallReference(replacement, contextType: contextType);
   }
 
   @override
@@ -2229,9 +2281,11 @@
 
   @override
   void visitRethrowExpression(RethrowExpression node) {
+    var contextType = InferenceContext.getContext(node);
     checkUnreachableNode(node);
     node.visitChildren(this);
-    typeAnalyzer.visitRethrowExpression(node as RethrowExpressionImpl);
+    typeAnalyzer.visitRethrowExpression(node as RethrowExpressionImpl,
+        contextType: contextType);
     flowAnalysis.flow?.handleExit();
   }
 
@@ -2254,8 +2308,10 @@
 
   @override
   void visitSetOrMapLiteral(SetOrMapLiteral node) {
+    var contextType = InferenceContext.getContext(node);
     checkUnreachableNode(node);
-    _typedLiteralResolver.resolveSetOrMapLiteral(node);
+    _typedLiteralResolver.resolveSetOrMapLiteral(node,
+        contextType: contextType);
   }
 
   @override
@@ -2270,15 +2326,20 @@
 
   @override
   void visitSimpleIdentifier(covariant SimpleIdentifierImpl node) {
-    _simpleIdentifierResolver.resolve(node);
-    _insertImplicitCallReference(insertGenericFunctionInstantiation(node));
+    var contextType = InferenceContext.getContext(node);
+    _simpleIdentifierResolver.resolve(node, contextType: contextType);
+    _insertImplicitCallReference(
+        insertGenericFunctionInstantiation(node, contextType: contextType),
+        contextType: contextType);
   }
 
   @override
   void visitSimpleStringLiteral(SimpleStringLiteral node) {
+    var contextType = InferenceContext.getContext(node);
     checkUnreachableNode(node);
     node.visitChildren(this);
-    typeAnalyzer.visitSimpleStringLiteral(node as SimpleStringLiteralImpl);
+    typeAnalyzer.visitSimpleStringLiteral(node as SimpleStringLiteralImpl,
+        contextType: contextType);
   }
 
   @override
@@ -2301,9 +2362,11 @@
 
   @override
   void visitStringInterpolation(StringInterpolation node) {
+    var contextType = InferenceContext.getContext(node);
     checkUnreachableNode(node);
     node.visitChildren(this);
-    typeAnalyzer.visitStringInterpolation(node as StringInterpolationImpl);
+    typeAnalyzer.visitStringInterpolation(node as StringInterpolationImpl,
+        contextType: contextType);
   }
 
   @override
@@ -2324,10 +2387,12 @@
 
   @override
   void visitSuperExpression(SuperExpression node) {
+    var contextType = InferenceContext.getContext(node);
     checkUnreachableNode(node);
     node.visitChildren(this);
     elementResolver.visitSuperExpression(node);
-    typeAnalyzer.visitSuperExpression(node as SuperExpressionImpl);
+    typeAnalyzer.visitSuperExpression(node as SuperExpressionImpl,
+        contextType: contextType);
   }
 
   @override
@@ -2402,24 +2467,30 @@
 
   @override
   void visitSymbolLiteral(SymbolLiteral node) {
+    var contextType = InferenceContext.getContext(node);
     checkUnreachableNode(node);
     node.visitChildren(this);
-    typeAnalyzer.visitSymbolLiteral(node as SymbolLiteralImpl);
+    typeAnalyzer.visitSymbolLiteral(node as SymbolLiteralImpl,
+        contextType: contextType);
   }
 
   @override
   void visitThisExpression(ThisExpression node) {
+    var contextType = InferenceContext.getContext(node);
     checkUnreachableNode(node);
     node.visitChildren(this);
-    typeAnalyzer.visitThisExpression(node as ThisExpressionImpl);
-    _insertImplicitCallReference(node);
+    typeAnalyzer.visitThisExpression(node as ThisExpressionImpl,
+        contextType: contextType);
+    _insertImplicitCallReference(node, contextType: contextType);
   }
 
   @override
   void visitThrowExpression(ThrowExpression node) {
+    var contextType = InferenceContext.getContext(node);
     checkUnreachableNode(node);
     node.visitChildren(this);
-    typeAnalyzer.visitThrowExpression(node as ThrowExpressionImpl);
+    typeAnalyzer.visitThrowExpression(node as ThrowExpressionImpl,
+        contextType: contextType);
     flowAnalysis.flow?.handleExit();
   }
 
@@ -2579,7 +2650,8 @@
 
   /// If `expression` should be treated as `expression.call`, inserts an
   /// [ImplicitCallReference] node which wraps [expression].
-  void _insertImplicitCallReference(ExpressionImpl expression) {
+  void _insertImplicitCallReference(ExpressionImpl expression,
+      {required DartType? contextType}) {
     var parent = expression.parent;
     if (_shouldSkipImplicitCallReferenceDueToForm(expression, parent)) {
       return;
@@ -2592,7 +2664,7 @@
     if (parent is AssignmentExpression) {
       context = parent.writeType;
     } else {
-      context = InferenceContext.getContext(expression);
+      context = contextType;
     }
     var callMethod = getImplicitCallMethod(staticType, context, expression);
     if (callMethod == null || context == null) {
@@ -2641,9 +2713,9 @@
   /// ordinary method invocation. So, we need to perform the same null shorting
   /// as for method invocations.
   void _resolveRewrittenFunctionExpressionInvocation(
-    FunctionExpressionInvocation node,
-    List<WhyNotPromotedGetter> whyNotPromotedList,
-  ) {
+      FunctionExpressionInvocation node,
+      List<WhyNotPromotedGetter> whyNotPromotedList,
+      {required DartType? contextType}) {
     var function = node.function;
 
     if (function is PropertyAccess &&
@@ -2660,7 +2732,8 @@
     }
 
     _functionExpressionInvocationResolver.resolve(
-        node as FunctionExpressionInvocationImpl, whyNotPromotedList);
+        node as FunctionExpressionInvocationImpl, whyNotPromotedList,
+        contextType: contextType);
 
     nullShortingTermination(node);
   }
@@ -2848,6 +2921,7 @@
 
   @override
   void visitConditionalExpression(covariant ConditionalExpressionImpl node) {
+    var contextType = InferenceContext.getContext(node);
     var conditionalKnownValue =
         _migrationResolutionHooks.getConditionalKnownValue(node);
     if (conditionalKnownValue == null) {
@@ -2857,7 +2931,8 @@
       var subexpressionToKeep =
           conditionalKnownValue ? node.thenExpression : node.elseExpression;
       subexpressionToKeep.accept(this);
-      inferenceHelper.recordStaticType(node, subexpressionToKeep.typeOrThrow);
+      inferenceHelper.recordStaticType(node, subexpressionToKeep.typeOrThrow,
+          contextType: contextType);
     }
   }
 
diff --git a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
index c9a8835..a3ac1e3 100644
--- a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
+++ b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
@@ -47,8 +47,10 @@
 
   /// The Dart Language Specification, 12.5: <blockquote>The static type of a string literal is
   /// `String`.</blockquote>
-  void visitAdjacentStrings(covariant AdjacentStringsImpl node) {
-    _inferenceHelper.recordStaticType(node, _typeProvider.stringType);
+  void visitAdjacentStrings(covariant AdjacentStringsImpl node,
+      {required DartType? contextType}) {
+    _inferenceHelper.recordStaticType(node, _typeProvider.stringType,
+        contextType: contextType);
   }
 
   /// The Dart Language Specification, 12.32: <blockquote>... the cast expression <i>e as T</i> ...
@@ -57,31 +59,39 @@
   /// scope.
   ///
   /// The static type of a cast expression <i>e as T</i> is <i>T</i>.</blockquote>
-  void visitAsExpression(covariant AsExpressionImpl node) {
-    _inferenceHelper.recordStaticType(node, _getType(node.type));
+  void visitAsExpression(covariant AsExpressionImpl node,
+      {required DartType? contextType}) {
+    _inferenceHelper.recordStaticType(node, _getType(node.type),
+        contextType: contextType);
   }
 
   /// The Dart Language Specification, 16.29 (Await Expressions):
   ///
   ///   The static type of [the expression "await e"] is flatten(T) where T is
   ///   the static type of e.
-  void visitAwaitExpression(covariant AwaitExpressionImpl node) {
+  void visitAwaitExpression(covariant AwaitExpressionImpl node,
+      {required DartType? contextType}) {
     var resultType = node.expression.typeOrThrow;
     resultType = _typeSystem.flatten(resultType);
-    _inferenceHelper.recordStaticType(node, resultType);
+    _inferenceHelper.recordStaticType(node, resultType,
+        contextType: contextType);
   }
 
   /// The Dart Language Specification, 12.4: <blockquote>The static type of a boolean literal is
   /// bool.</blockquote>
-  void visitBooleanLiteral(covariant BooleanLiteralImpl node) {
-    _inferenceHelper.recordStaticType(node, _typeProvider.boolType);
+  void visitBooleanLiteral(covariant BooleanLiteralImpl node,
+      {required DartType? contextType}) {
+    _inferenceHelper.recordStaticType(node, _typeProvider.boolType,
+        contextType: contextType);
   }
 
   /// The Dart Language Specification, 12.15.2: <blockquote>A cascaded method invocation expression
   /// of the form <i>e..suffix</i> is equivalent to the expression <i>(t) {t.suffix; return
   /// t;}(e)</i>.</blockquote>
-  void visitCascadeExpression(covariant CascadeExpressionImpl node) {
-    _inferenceHelper.recordStaticType(node, node.target.typeOrThrow);
+  void visitCascadeExpression(covariant CascadeExpressionImpl node,
+      {required DartType? contextType}) {
+    _inferenceHelper.recordStaticType(node, node.target.typeOrThrow,
+        contextType: contextType);
   }
 
   /// The Dart Language Specification, 12.19: <blockquote> ... a conditional expression <i>c</i> of
@@ -91,14 +101,18 @@
   ///
   /// The static type of <i>c</i> is the least upper bound of the static type of <i>e<sub>2</sub></i>
   /// and the static type of <i>e<sub>3</sub></i>.</blockquote>
-  void visitConditionalExpression(covariant ConditionalExpressionImpl node) {
-    _analyzeLeastUpperBound(node, node.thenExpression, node.elseExpression);
+  void visitConditionalExpression(covariant ConditionalExpressionImpl node,
+      {required DartType? contextType}) {
+    _analyzeLeastUpperBound(node, node.thenExpression, node.elseExpression,
+        contextType: contextType);
   }
 
   /// The Dart Language Specification, 12.3: <blockquote>The static type of a literal double is
   /// double.</blockquote>
-  void visitDoubleLiteral(covariant DoubleLiteralImpl node) {
-    _inferenceHelper.recordStaticType(node, _typeProvider.doubleType);
+  void visitDoubleLiteral(covariant DoubleLiteralImpl node,
+      {required DartType? contextType}) {
+    _inferenceHelper.recordStaticType(node, _typeProvider.doubleType,
+        contextType: contextType);
   }
 
   void visitExtensionOverride(ExtensionOverride node) {
@@ -149,10 +163,12 @@
   /// expression of either the form <i>const T.id(a<sub>1</sub>, &hellip;, a<sub>n</sub>)</i> or the
   /// form <i>const T(a<sub>1</sub>, &hellip;, a<sub>n</sub>)</i> is <i>T</i>. </blockquote>
   void visitInstanceCreationExpression(
-      covariant InstanceCreationExpressionImpl node) {
-    _inferInstanceCreationExpression(node);
+      covariant InstanceCreationExpressionImpl node,
+      {required DartType? contextType}) {
+    _inferInstanceCreationExpression(node, contextType: contextType);
     _inferenceHelper.recordStaticType(
-        node, node.constructorName.type.typeOrThrow);
+        node, node.constructorName.type.typeOrThrow,
+        contextType: contextType);
   }
 
   /// <blockquote>
@@ -170,14 +186,16 @@
   /// type of $e$ is the same as the static type of an integer literal with the
   /// same contexttype
   /// </blockquote>
-  void visitIntegerLiteral(IntegerLiteralImpl node) {
-    var contextType = InferenceContext.getContext(node);
+  void visitIntegerLiteral(IntegerLiteralImpl node,
+      {required DartType? contextType}) {
     if (contextType == null ||
         _typeSystem.isAssignableTo(_typeProvider.intType, contextType) ||
         !_typeSystem.isAssignableTo(_typeProvider.doubleType, contextType)) {
-      _inferenceHelper.recordStaticType(node, _typeProvider.intType);
+      _inferenceHelper.recordStaticType(node, _typeProvider.intType,
+          contextType: contextType);
     } else {
-      _inferenceHelper.recordStaticType(node, _typeProvider.doubleType);
+      _inferenceHelper.recordStaticType(node, _typeProvider.doubleType,
+          contextType: contextType);
     }
   }
 
@@ -185,106 +203,133 @@
   /// denote a type available in the current lexical scope.
   ///
   /// The static type of an is-expression is `bool`.</blockquote>
-  void visitIsExpression(covariant IsExpressionImpl node) {
-    _inferenceHelper.recordStaticType(node, _typeProvider.boolType);
+  void visitIsExpression(covariant IsExpressionImpl node,
+      {required DartType? contextType}) {
+    _inferenceHelper.recordStaticType(node, _typeProvider.boolType,
+        contextType: contextType);
   }
 
   void visitMethodInvocation(MethodInvocation node) {
     throw StateError('Should not be invoked');
   }
 
-  void visitNamedExpression(covariant NamedExpressionImpl node) {
+  void visitNamedExpression(covariant NamedExpressionImpl node,
+      {required DartType? contextType}) {
     Expression expression = node.expression;
-    _inferenceHelper.recordStaticType(node, expression.typeOrThrow);
+    _inferenceHelper.recordStaticType(node, expression.typeOrThrow,
+        contextType: contextType);
   }
 
   /// The Dart Language Specification, 12.2: <blockquote>The static type of `null` is bottom.
   /// </blockquote>
-  void visitNullLiteral(covariant NullLiteralImpl node) {
-    _inferenceHelper.recordStaticType(node, _typeProvider.nullType);
+  void visitNullLiteral(covariant NullLiteralImpl node,
+      {required DartType? contextType}) {
+    _inferenceHelper.recordStaticType(node, _typeProvider.nullType,
+        contextType: contextType);
   }
 
-  void visitParenthesizedExpression(
-      covariant ParenthesizedExpressionImpl node) {
+  void visitParenthesizedExpression(covariant ParenthesizedExpressionImpl node,
+      {required DartType? contextType}) {
     Expression expression = node.expression;
-    _inferenceHelper.recordStaticType(node, expression.typeOrThrow);
+    _inferenceHelper.recordStaticType(node, expression.typeOrThrow,
+        contextType: contextType);
   }
 
   /// The Dart Language Specification, 12.9: <blockquote>The static type of a rethrow expression is
   /// bottom.</blockquote>
-  void visitRethrowExpression(covariant RethrowExpressionImpl node) {
-    _inferenceHelper.recordStaticType(node, _typeProvider.bottomType);
+  void visitRethrowExpression(covariant RethrowExpressionImpl node,
+      {required DartType? contextType}) {
+    _inferenceHelper.recordStaticType(node, _typeProvider.bottomType,
+        contextType: contextType);
   }
 
   /// The Dart Language Specification, 12.5: <blockquote>The static type of a string literal is
   /// `String`.</blockquote>
-  void visitSimpleStringLiteral(covariant SimpleStringLiteralImpl node) {
-    _inferenceHelper.recordStaticType(node, _typeProvider.stringType);
+  void visitSimpleStringLiteral(covariant SimpleStringLiteralImpl node,
+      {required DartType? contextType}) {
+    _inferenceHelper.recordStaticType(node, _typeProvider.stringType,
+        contextType: contextType);
   }
 
   /// The Dart Language Specification, 12.5: <blockquote>The static type of a string literal is
   /// `String`.</blockquote>
-  void visitStringInterpolation(covariant StringInterpolationImpl node) {
-    _inferenceHelper.recordStaticType(node, _typeProvider.stringType);
+  void visitStringInterpolation(covariant StringInterpolationImpl node,
+      {required DartType? contextType}) {
+    _inferenceHelper.recordStaticType(node, _typeProvider.stringType,
+        contextType: contextType);
   }
 
-  void visitSuperExpression(covariant SuperExpressionImpl node) {
+  void visitSuperExpression(covariant SuperExpressionImpl node,
+      {required DartType? contextType}) {
     var thisType = _resolver.thisType;
     _resolver.flowAnalysis.flow?.thisOrSuper(node, thisType ?? _dynamicType);
     if (thisType == null ||
         node.thisOrAncestorOfType<ExtensionDeclaration>() != null) {
       // TODO(brianwilkerson) Report this error if it hasn't already been
       // reported.
-      _inferenceHelper.recordStaticType(node, _dynamicType);
+      _inferenceHelper.recordStaticType(node, _dynamicType,
+          contextType: contextType);
     } else {
-      _inferenceHelper.recordStaticType(node, thisType);
+      _inferenceHelper.recordStaticType(node, thisType,
+          contextType: contextType);
     }
   }
 
-  void visitSymbolLiteral(covariant SymbolLiteralImpl node) {
-    _inferenceHelper.recordStaticType(node, _typeProvider.symbolType);
+  void visitSymbolLiteral(covariant SymbolLiteralImpl node,
+      {required DartType? contextType}) {
+    _inferenceHelper.recordStaticType(node, _typeProvider.symbolType,
+        contextType: contextType);
   }
 
   /// The Dart Language Specification, 12.10: <blockquote>The static type of `this` is the
   /// interface of the immediately enclosing class.</blockquote>
-  void visitThisExpression(covariant ThisExpressionImpl node) {
+  void visitThisExpression(covariant ThisExpressionImpl node,
+      {required DartType? contextType}) {
     var thisType = _resolver.thisType;
     _resolver.flowAnalysis.flow?.thisOrSuper(node, thisType ?? _dynamicType);
     if (thisType == null) {
       // TODO(brianwilkerson) Report this error if it hasn't already been
       // reported.
-      _inferenceHelper.recordStaticType(node, _dynamicType);
+      _inferenceHelper.recordStaticType(node, _dynamicType,
+          contextType: contextType);
     } else {
-      _inferenceHelper.recordStaticType(node, thisType);
+      _inferenceHelper.recordStaticType(node, thisType,
+          contextType: contextType);
     }
   }
 
   /// The Dart Language Specification, 12.8: <blockquote>The static type of a throw expression is
   /// bottom.</blockquote>
-  void visitThrowExpression(covariant ThrowExpressionImpl node) {
-    _inferenceHelper.recordStaticType(node, _typeProvider.bottomType);
+  void visitThrowExpression(covariant ThrowExpressionImpl node,
+      {required DartType? contextType}) {
+    _inferenceHelper.recordStaticType(node, _typeProvider.bottomType,
+        contextType: contextType);
   }
 
   /// Set the static type of [node] to be the least upper bound of the static
   /// types of subexpressions [expr1] and [expr2].
   void _analyzeLeastUpperBound(
-      ExpressionImpl node, Expression expr1, Expression expr2) {
+      ExpressionImpl node, Expression expr1, Expression expr2,
+      {required DartType? contextType}) {
     var staticType1 = expr1.typeOrThrow;
     var staticType2 = expr2.typeOrThrow;
 
-    _analyzeLeastUpperBoundTypes(node, staticType1, staticType2);
+    _analyzeLeastUpperBoundTypes(node, staticType1, staticType2,
+        contextType: contextType);
   }
 
   /// Set the static type of [node] to be the least upper bound of the static
   /// types [staticType1] and [staticType2].
   void _analyzeLeastUpperBoundTypes(
-      ExpressionImpl node, DartType staticType1, DartType staticType2) {
+      ExpressionImpl node, DartType staticType1, DartType staticType2,
+      {required DartType? contextType}) {
     DartType staticType =
         _typeSystem.getLeastUpperBound(staticType1, staticType2);
 
     staticType = _resolver.toLegacyTypeIfOptOut(staticType);
 
-    _inferenceHelper.recordStaticType(node, staticType);
+    _inferenceHelper.recordStaticType(node, staticType,
+        contextType: contextType);
   }
 
   /// Return the type represented by the given type [annotation].
@@ -300,7 +345,8 @@
 
   /// Given an instance creation of a possibly generic type, infer the type
   /// arguments using the current context type as well as the argument types.
-  void _inferInstanceCreationExpression(InstanceCreationExpressionImpl node) {
+  void _inferInstanceCreationExpression(InstanceCreationExpressionImpl node,
+      {required DartType? contextType}) {
     // TODO(leafp): Currently, we may re-infer types here, since we
     // sometimes resolve multiple times.  We should really check that we
     // have not already inferred something.  However, the obvious ways to
@@ -329,7 +375,7 @@
     var arguments = node.argumentList;
     var inferred = _resolver.inferenceHelper.inferGenericInvoke(
         node, constructorType, typeArguments, arguments, constructorName,
-        isConst: node.isConst);
+        isConst: node.isConst, contextReturnType: contextType);
 
     if (inferred != null) {
       // Fix up the parameter elements based on inferred method.
diff --git a/pkg/analyzer/lib/src/generated/testing/ast_test_factory.dart b/pkg/analyzer/lib/src/generated/testing/ast_test_factory.dart
index 22cd603..7b109c5 100644
--- a/pkg/analyzer/lib/src/generated/testing/ast_test_factory.dart
+++ b/pkg/analyzer/lib/src/generated/testing/ast_test_factory.dart
@@ -643,6 +643,7 @@
           null,
           null,
           null,
+          null,
           type,
           keyword == null ? null : TokenFactory.tokenFromKeyword(keyword),
           identifier3(name),
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
index 6adfbee..df1bb2d 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
@@ -855,6 +855,7 @@
     var node = astFactory.mixinDeclaration(
       null,
       metadata,
+      null,
       Tokens.mixin_(),
       name,
       typeParameters,
diff --git a/pkg/analyzer/lib/src/summary2/constructor_initializer_resolver.dart b/pkg/analyzer/lib/src/summary2/constructor_initializer_resolver.dart
index 0449c8c..cafb22c 100644
--- a/pkg/analyzer/lib/src/summary2/constructor_initializer_resolver.dart
+++ b/pkg/analyzer/lib/src/summary2/constructor_initializer_resolver.dart
@@ -18,12 +18,16 @@
 
   void resolve() {
     for (var unitElement in _libraryElement.units) {
-      var classElements = [...unitElement.classes, ...unitElement.mixins];
+      var classElements = [
+        ...unitElement.classes,
+        ...unitElement.enums,
+        ...unitElement.mixins,
+      ];
       for (var classElement in classElements) {
         for (var constructorElement in classElement.constructors) {
           _constructor(
             unitElement as CompilationUnitElementImpl,
-            classElement as ClassElementImpl,
+            classElement as AbstractClassElementImpl,
             constructorElement as ConstructorElementImpl,
           );
         }
@@ -33,7 +37,7 @@
 
   void _constructor(
     CompilationUnitElementImpl unitElement,
-    ClassElementImpl classElement,
+    AbstractClassElementImpl classElement,
     ConstructorElementImpl element,
   ) {
     if (element.isSynthetic) return;
diff --git a/pkg/analyzer/lib/src/summary2/element_builder.dart b/pkg/analyzer/lib/src/summary2/element_builder.dart
index 617acb2..940c8d7 100644
--- a/pkg/analyzer/lib/src/summary2/element_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/element_builder.dart
@@ -406,7 +406,7 @@
     node.declaredElement = element;
     _linker.elementNodes[element] = node;
 
-    var refName = name ?? 'extension-${_nextUnnamedExtensionId++}';
+    var refName = name ?? '${_nextUnnamedExtensionId++}';
     var reference = _enclosingContext.addExtension(refName, element);
 
     if (name != null) {
diff --git a/pkg/analyzer/lib/src/summary2/metadata_resolver.dart b/pkg/analyzer/lib/src/summary2/metadata_resolver.dart
index 63659bb7..faac307 100644
--- a/pkg/analyzer/lib/src/summary2/metadata_resolver.dart
+++ b/pkg/analyzer/lib/src/summary2/metadata_resolver.dart
@@ -78,7 +78,15 @@
   @override
   void visitEnumDeclaration(EnumDeclaration node) {
     node.metadata.accept(this);
-    node.constants.accept(this);
+    node.typeParameters?.accept(this);
+
+    _scope = LinkingNodeContext.get(node).scope;
+    try {
+      node.constants.accept(this);
+      node.members.accept(this);
+    } finally {
+      _scope = _libraryScope;
+    }
   }
 
   @override
diff --git a/pkg/analyzer/messages.yaml b/pkg/analyzer/messages.yaml
index 9884045..8c6aa4a 100644
--- a/pkg/analyzer/messages.yaml
+++ b/pkg/analyzer/messages.yaml
@@ -3370,6 +3370,9 @@
       Parameters:
       0: the name of the abstract method
       1: the name of the enclosing enum
+  ENUM_WITH_NAME_VALUES:
+    problemMessage: The name 'values' is not a valid name for an enum.
+    correctionMessage: Try using a different name.
   EQUAL_ELEMENTS_IN_CONST_SET:
     problemMessage: "Two elements in a constant set literal can't be equal."
     correctionMessage: Change or remove the duplicate element.
diff --git a/pkg/analyzer/test/generated/constant_test.dart b/pkg/analyzer/test/generated/constant_test.dart
index 2387698b..9be808b 100644
--- a/pkg/analyzer/test/generated/constant_test.dart
+++ b/pkg/analyzer/test/generated/constant_test.dart
@@ -5,6 +5,7 @@
 @deprecated
 library analyzer.test.constant_test;
 
+import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/src/dart/element/element.dart';
 import 'package:analyzer/src/generated/constant.dart';
 import 'package:test/test.dart';
@@ -392,6 +393,27 @@
 ''');
   }
 
+  /// Enum constants can reference other constants.
+  test_object_enum_enhanced_constants() async {
+    await assertNoErrorsInCode('''
+enum E {
+  v1(42), v2(v1);
+  final Object? a;
+  const E([this.a]);
+}
+''');
+
+    assertDartObjectText(findElement.field('v2').evaluationResult.value, r'''
+E
+  _name: String v2
+  a: E
+    _name: String v1
+    a: int 42
+    index: int 0
+  index: int 1
+''');
+  }
+
   test_object_enum_enhanced_named() async {
     await resolveTestCode('''
 enum E<T> {
@@ -586,3 +608,14 @@
     return element.evaluationResult!;
   }
 }
+
+extension on VariableElement {
+  EvaluationResultImpl get evaluationResult {
+    var constVariable = this as ConstVariableElement;
+    var evaluationResult = constVariable.evaluationResult;
+    if (evaluationResult == null) {
+      fail('Not evaluated: $this');
+    }
+    return evaluationResult;
+  }
+}
diff --git a/pkg/analyzer/test/generated/nnbd_parser_test.dart b/pkg/analyzer/test/generated/nnbd_parser_test.dart
index 53a1772..a43a27c 100644
--- a/pkg/analyzer/test/generated/nnbd_parser_test.dart
+++ b/pkg/analyzer/test/generated/nnbd_parser_test.dart
@@ -235,9 +235,9 @@
     parseCompilationUnit(r'+t{{r?this}}', errors: [
       expectedError(ParserErrorCode.EXPECTED_EXECUTABLE, 0, 1),
       expectedError(ParserErrorCode.MISSING_FUNCTION_PARAMETERS, 1, 1),
-      expectedError(ParserErrorCode.MISSING_IDENTIFIER, 6, 4),
       expectedError(ParserErrorCode.EXPECTED_TOKEN, 6, 4),
       expectedError(ParserErrorCode.EXPECTED_TOKEN, 10, 1),
+      expectedError(ParserErrorCode.MISSING_IDENTIFIER, 10, 1),
     ]);
   }
 
diff --git a/pkg/analyzer/test/generated/parser_fasta_listener.dart b/pkg/analyzer/test/generated/parser_fasta_listener.dart
index cf8dfd5..29e09d2 100644
--- a/pkg/analyzer/test/generated/parser_fasta_listener.dart
+++ b/pkg/analyzer/test/generated/parser_fasta_listener.dart
@@ -380,8 +380,9 @@
   }
 
   @override
-  void beginMixinDeclaration(Token mixinKeyword, Token name) {
-    super.beginMixinDeclaration(mixinKeyword, name);
+  void beginMixinDeclaration(
+      Token? augmentToken, Token mixinKeyword, Token name) {
+    super.beginMixinDeclaration(augmentToken, mixinKeyword, name);
     begin('MixinDeclaration');
   }
 
@@ -478,8 +479,9 @@
   }
 
   @override
-  void beginTopLevelMethod(Token lastConsumed, Token? externalToken) {
-    super.beginTopLevelMethod(lastConsumed, externalToken);
+  void beginTopLevelMethod(
+      Token lastConsumed, Token? augmentToken, Token? externalToken) {
+    super.beginTopLevelMethod(lastConsumed, augmentToken, externalToken);
     begin('TopLevelMethod');
   }
 
@@ -631,6 +633,7 @@
   @override
   void endClassFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -643,6 +646,7 @@
     expectIn('Member');
     super.endClassFields(
         abstractToken,
+        augmentToken,
         externalToken,
         staticToken,
         covariantToken,
@@ -757,6 +761,7 @@
   @override
   void endEnumFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -768,6 +773,7 @@
     expectIn('Member');
     super.endEnumFields(
         abstractToken,
+        augmentToken,
         externalToken,
         staticToken,
         covariantToken,
@@ -818,6 +824,7 @@
   @override
   void endExtensionFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -830,6 +837,7 @@
     expectIn('Member');
     super.endExtensionFields(
         abstractToken,
+        augmentToken,
         externalToken,
         staticToken,
         covariantToken,
@@ -1077,6 +1085,7 @@
   @override
   void endMixinFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -1089,6 +1098,7 @@
     expectIn('Member');
     super.endMixinFields(
         abstractToken,
+        augmentToken,
         externalToken,
         staticToken,
         covariantToken,
diff --git a/pkg/analyzer/test/src/dart/analysis/driver_test.dart b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
index 807866c..afefd83 100644
--- a/pkg/analyzer/test/src/dart/analysis/driver_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/driver_test.dart
@@ -3436,17 +3436,11 @@
 }
 
 extension on AnalysisDriver {
-  Set<String> get loadedLibraryUriSet {
-    var elementFactory = this.test.libraryContext!.elementFactory;
-    var libraryReferences = elementFactory.rootReference.children;
-    return libraryReferences.map((e) => e.name).toSet();
-  }
-
   void assertLoadedLibraryUriSet({
     Iterable<String>? included,
     Iterable<String>? excluded,
   }) {
-    var uriSet = loadedLibraryUriSet;
+    var uriSet = this.test.loadedLibraryUriSet;
     if (included != null) {
       expect(uriSet, containsAll(included));
     }
diff --git a/pkg/analyzer/test/src/dart/constant/utilities_test.dart b/pkg/analyzer/test/src/dart/constant/utilities_test.dart
index 906c7e0..99bd23a 100644
--- a/pkg/analyzer/test/src/dart/constant/utilities_test.dart
+++ b/pkg/analyzer/test/src/dart/constant/utilities_test.dart
@@ -6,7 +6,6 @@
 import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/type_provider.dart';
-import 'package:analyzer/src/dart/ast/ast_factory.dart';
 import 'package:analyzer/src/dart/ast/token.dart';
 import 'package:analyzer/src/dart/element/element.dart';
 import 'package:analyzer/src/generated/constant.dart';
@@ -53,15 +52,6 @@
     expect(_findAnnotations(), contains(_node));
   }
 
-  void test_visitAnnotation_enumConstant() {
-    // Analyzer ignores annotations on enum constant declarations.
-    Annotation annotation = AstTestFactory.annotation2(
-        AstTestFactory.identifier3('A'), null, AstTestFactory.argumentList());
-    _node = astFactory.enumConstantDeclaration(
-        null, <Annotation>[annotation], AstTestFactory.identifier3('C'));
-    expect(_findConstants(), isEmpty);
-  }
-
   /// Test an annotation that represents the invocation of a constant
   /// constructor.
   void test_visitAnnotation_invocation() {
diff --git a/pkg/analyzer/test/src/dart/resolution/constructor_reference_test.dart b/pkg/analyzer/test/src/dart/resolution/constructor_reference_test.dart
index 0b2478b..a48aaa1 100644
--- a/pkg/analyzer/test/src/dart/resolution/constructor_reference_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/constructor_reference_test.dart
@@ -30,18 +30,47 @@
 const a = TA<int, String>.foo;
 ''');
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('TA<int, String>.foo;'),
-      elementMatcher(classElement.getNamedConstructor('foo')!,
-          substitution: {'T': 'String', 'U': 'int'}),
-      classElement,
-      'A<String, int> Function()',
-      expectedTypeNameElement: findElement.typeAlias('TA'),
-    );
+    var node = findNode.constructorReference('TA<int, String>.foo;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: TA
+        staticElement: self::@typeAlias::TA
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+          NamedType
+            name: SimpleIdentifier
+              token: String
+              staticElement: dart:core::@class::String
+              staticType: null
+            type: String
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: foo
+      staticElement: ConstructorMember
+        base: self::@class::A::@constructor::foo
+        substitution: {T: String, U: int}
+      staticType: null
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::foo
+      substitution: {T: String, U: int}
+  staticType: A<String, int> Function()
+''');
   }
 
-  test_alias_generic_const_differingNumberOfTypeParamters() async {
+  test_alias_generic_const_differingNumberOfTypeParameters() async {
     await assertNoErrorsInCode('''
 class A<T, U> {
   A.foo() {}
@@ -51,15 +80,38 @@
 const x = TA<int>.foo;
 ''');
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('TA<int>.foo;'),
-      elementMatcher(classElement.getNamedConstructor('foo')!,
-          substitution: {'T': 'int', 'U': 'String'}),
-      classElement,
-      'A<int, String> Function()',
-      expectedTypeNameElement: findElement.typeAlias('TA'),
-    );
+    var node = findNode.constructorReference('TA<int>.foo;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: TA
+        staticElement: self::@typeAlias::TA
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: foo
+      staticElement: ConstructorMember
+        base: self::@class::A::@constructor::foo
+        substitution: {T: int, U: String}
+      staticType: null
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::foo
+      substitution: {T: int, U: String}
+  staticType: A<int, String> Function()
+''');
   }
 
   test_alias_generic_named() async {
@@ -74,15 +126,44 @@
 }
 ''');
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('TA<int, String>.foo;'),
-      elementMatcher(classElement.getNamedConstructor('foo')!,
-          substitution: {'T': 'String', 'U': 'int'}),
-      classElement,
-      'A<String, int> Function()',
-      expectedTypeNameElement: findElement.typeAlias('TA'),
-    );
+    var node = findNode.constructorReference('TA<int, String>.foo;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: TA
+        staticElement: self::@typeAlias::TA
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+          NamedType
+            name: SimpleIdentifier
+              token: String
+              staticElement: dart:core::@class::String
+              staticType: null
+            type: String
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: foo
+      staticElement: ConstructorMember
+        base: self::@class::A::@constructor::foo
+        substitution: {T: String, U: int}
+      staticType: null
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::foo
+      substitution: {T: String, U: int}
+  staticType: A<String, int> Function()
+''');
   }
 
   test_alias_generic_uninstantiated_const() async {
@@ -95,14 +176,24 @@
 const a = TA.foo;
 ''');
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('TA.foo;'),
-      classElement.getNamedConstructor('foo'),
-      classElement,
-      'A<U, T> Function<T, U>()',
-      expectedTypeNameElement: findElement.typeAlias('TA'),
-    );
+    var node = findNode.constructorReference('TA.foo;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: TA
+        staticElement: self::@typeAlias::TA
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: foo
+      staticElement: self::@class::A::@constructor::foo
+      staticType: null
+    staticElement: self::@class::A::@constructor::foo
+  staticType: A<U, T> Function<T, U>()
+''');
   }
 
   test_alias_generic_unnamed() async {
@@ -117,15 +208,38 @@
 }
 ''');
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('TA<int>.new;'),
-      elementMatcher(classElement.unnamedConstructor,
-          substitution: {'T': 'int'}),
-      classElement,
-      'A<int> Function()',
-      expectedTypeNameElement: findElement.typeAlias('TA'),
-    );
+    var node = findNode.constructorReference('TA<int>.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: TA
+        staticElement: self::@typeAlias::TA
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: ConstructorMember
+        base: self::@class::A::@constructor::•
+        substitution: {T: int}
+      staticType: null
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::•
+      substitution: {T: int}
+  staticType: A<int> Function()
+''');
   }
 
   test_alias_genericWithBound_unnamed() async {
@@ -140,15 +254,38 @@
 }
 ''');
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('TA<int>.new;'),
-      elementMatcher(classElement.unnamedConstructor,
-          substitution: {'T': 'int'}),
-      classElement,
-      'A<int> Function()',
-      expectedTypeNameElement: findElement.typeAlias('TA'),
-    );
+    var node = findNode.constructorReference('TA<int>.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: TA
+        staticElement: self::@typeAlias::TA
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: ConstructorMember
+        base: self::@class::A::@constructor::•
+        substitution: {T: int}
+      staticType: null
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::•
+      substitution: {T: int}
+  staticType: A<int> Function()
+''');
   }
 
   test_alias_genericWithBound_unnamed_badBound() async {
@@ -165,15 +302,38 @@
       error(CompileTimeErrorCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS, 75, 6),
     ]);
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('TA<String>.new;'),
-      elementMatcher(classElement.unnamedConstructor,
-          substitution: {'T': 'String'}),
-      classElement,
-      'A<String> Function()',
-      expectedTypeNameElement: findElement.typeAlias('TA'),
-    );
+    var node = findNode.constructorReference('TA<String>.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: TA
+        staticElement: self::@typeAlias::TA
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: String
+              staticElement: dart:core::@class::String
+              staticType: null
+            type: String
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: ConstructorMember
+        base: self::@class::A::@constructor::•
+        substitution: {T: String}
+      staticType: null
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::•
+      substitution: {T: String}
+  staticType: A<String> Function()
+''');
   }
 
   test_class_generic_const() async {
@@ -185,14 +345,38 @@
 const a = A<int>.new;
 ''');
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A<int>.new;'),
-      elementMatcher(classElement.unnamedConstructor,
-          substitution: {'T': 'int'}),
-      classElement,
-      'A<int> Function()',
-    );
+    var node = findNode.constructorReference('A<int>.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: ConstructorMember
+        base: self::@class::A::@constructor::•
+        substitution: {T: int}
+      staticType: null
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::•
+      substitution: {T: int}
+  staticType: A<int> Function()
+''');
   }
 
   test_class_generic_named() async {
@@ -206,14 +390,38 @@
 }
 ''');
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A<int>.foo;'),
-      elementMatcher(classElement.getNamedConstructor('foo')!,
-          substitution: {'T': 'int'}),
-      classElement,
-      'A<int> Function()',
-    );
+    var node = findNode.constructorReference('A<int>.foo;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: foo
+      staticElement: ConstructorMember
+        base: self::@class::A::@constructor::foo
+        substitution: {T: int}
+      staticType: null
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::foo
+      substitution: {T: int}
+  staticType: A<int> Function()
+''');
   }
 
   test_class_generic_named_cascade() async {
@@ -269,14 +477,38 @@
           messageContains: ["The constructor 'A.foo'"]),
     ]);
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A<int>.foo<int>;'),
-      elementMatcher(classElement.getNamedConstructor('foo')!,
-          substitution: {'T': 'int'}),
-      classElement,
-      'A<int> Function()',
-    );
+    var node = findNode.constructorReference('A<int>.foo<int>;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: foo
+      staticElement: ConstructorMember
+        base: self::@class::A::@constructor::foo
+        substitution: {T: int}
+      staticType: null
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::foo
+      substitution: {T: int}
+  staticType: A<int> Function()
+''');
   }
 
   test_class_generic_new_typeArgs() async {
@@ -294,14 +526,38 @@
           messageContains: ["The constructor 'A.new'"]),
     ]);
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A<int>.new<int>;'),
-      elementMatcher(classElement.unnamedConstructor!,
-          substitution: {'T': 'int'}),
-      classElement,
-      'A<int> Function()',
-    );
+    var node = findNode.constructorReference('A<int>.new<int>;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: ConstructorMember
+        base: self::@class::A::@constructor::•
+        substitution: {T: int}
+      staticType: null
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::•
+      substitution: {T: int}
+  staticType: A<int> Function()
+''');
   }
 
   test_class_generic_nonConstructor() async {
@@ -318,13 +574,34 @@
           51, 8),
     ]);
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A<int>.i;'),
-      null,
-      classElement,
-      'dynamic',
-    );
+    var node = findNode.constructorReference('A<int>.i;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: i
+      staticElement: <null>
+      staticType: null
+    staticElement: <null>
+  staticType: dynamic
+''');
   }
 
   test_class_generic_nothing_hasNamedConstructor() async {
@@ -340,13 +617,34 @@
       error(ParserErrorCode.MISSING_IDENTIFIER, 49, 1),
     ]);
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A<int>.;'),
-      null,
-      classElement,
-      'dynamic',
-    );
+    var node = findNode.constructorReference('A<int>.;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: <empty> <synthetic>
+      staticElement: <null>
+      staticType: null
+    staticElement: <null>
+  staticType: dynamic
+''');
   }
 
   test_class_generic_unnamed() async {
@@ -360,14 +658,38 @@
 }
 ''');
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A<int>.new;'),
-      elementMatcher(classElement.unnamedConstructor,
-          substitution: {'T': 'int'}),
-      classElement,
-      'A<int> Function()',
-    );
+    var node = findNode.constructorReference('A<int>.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: ConstructorMember
+        base: self::@class::A::@constructor::•
+        substitution: {T: int}
+      staticType: null
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::•
+      substitution: {T: int}
+  staticType: A<int> Function()
+''');
   }
 
   test_class_generic_unnamed_partOfPropertyAccess() async {
@@ -381,14 +703,38 @@
 }
 ''');
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A<int>.new'),
-      elementMatcher(classElement.unnamedConstructor,
-          substitution: {'T': 'int'}),
-      classElement,
-      'A<int> Function()',
-    );
+    var node = findNode.constructorReference('A<int>.new');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: ConstructorMember
+        base: self::@class::A::@constructor::•
+        substitution: {T: int}
+      staticType: null
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::•
+      substitution: {T: int}
+  staticType: A<int> Function()
+''');
   }
 
   test_class_genericWithBound_unnamed() async {
@@ -402,14 +748,38 @@
 }
 ''');
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A<int>.new;'),
-      elementMatcher(classElement.unnamedConstructor,
-          substitution: {'T': 'int'}),
-      classElement,
-      'A<int> Function()',
-    );
+    var node = findNode.constructorReference('A<int>.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: ConstructorMember
+        base: self::@class::A::@constructor::•
+        substitution: {T: int}
+      staticType: null
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::•
+      substitution: {T: int}
+  staticType: A<int> Function()
+''');
   }
 
   test_class_genericWithBound_unnamed_badBound() async {
@@ -425,14 +795,38 @@
       error(CompileTimeErrorCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS, 52, 6),
     ]);
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A<String>.new;'),
-      elementMatcher(classElement.unnamedConstructor,
-          substitution: {'T': 'String'}),
-      classElement,
-      'A<String> Function()',
-    );
+    var node = findNode.constructorReference('A<String>.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: String
+              staticElement: dart:core::@class::String
+              staticType: null
+            type: String
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: ConstructorMember
+        base: self::@class::A::@constructor::•
+        substitution: {T: String}
+      staticType: null
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::•
+      substitution: {T: String}
+  staticType: A<String> Function()
+''');
   }
 
   test_prefixedAlias_generic_unnamed() async {
@@ -449,18 +843,46 @@
 }
 ''');
 
-    var classElement =
-        findElement.importFind('package:test/a.dart').class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('a.TA<int>.new;'),
-      elementMatcher(classElement.unnamedConstructor,
-          substitution: {'T': 'int'}),
-      classElement,
-      'A<int> Function()',
-      expectedPrefix: findElement.import('package:test/a.dart').prefix,
-      expectedTypeNameElement:
-          findElement.importFind('package:test/a.dart').typeAlias('TA'),
-    );
+    var node = findNode.constructorReference('a.TA<int>.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: PrefixedIdentifier
+        prefix: SimpleIdentifier
+          token: a
+          staticElement: self::@prefix::a
+          staticType: null
+        period: .
+        identifier: SimpleIdentifier
+          token: TA
+          staticElement: package:test/a.dart::@typeAlias::TA
+          staticType: null
+        staticElement: package:test/a.dart::@typeAlias::TA
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: ConstructorMember
+        base: package:test/a.dart::@class::A::@constructor::•
+        substitution: {T: int}
+      staticType: null
+    staticElement: ConstructorMember
+      base: package:test/a.dart::@class::A::@constructor::•
+      substitution: {T: int}
+  staticType: A<int> Function()
+''');
   }
 
   test_prefixedClass_generic_named() async {
@@ -476,16 +898,46 @@
 }
 ''');
 
-    var classElement =
-        findElement.importFind('package:test/a.dart').class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('a.A<int>.foo;'),
-      elementMatcher(classElement.getNamedConstructor('foo')!,
-          substitution: {'T': 'int'}),
-      classElement,
-      'A<int> Function()',
-      expectedPrefix: findElement.import('package:test/a.dart').prefix,
-    );
+    var node = findNode.constructorReference('a.A<int>.foo;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: PrefixedIdentifier
+        prefix: SimpleIdentifier
+          token: a
+          staticElement: self::@prefix::a
+          staticType: null
+        period: .
+        identifier: SimpleIdentifier
+          token: A
+          staticElement: package:test/a.dart::@class::A
+          staticType: null
+        staticElement: package:test/a.dart::@class::A
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: foo
+      staticElement: ConstructorMember
+        base: package:test/a.dart::@class::A::@constructor::foo
+        substitution: {T: int}
+      staticType: null
+    staticElement: ConstructorMember
+      base: package:test/a.dart::@class::A::@constructor::foo
+      substitution: {T: int}
+  staticType: A<int> Function()
+''');
   }
 
   test_prefixedClass_generic_targetOfFunctionCall() async {
@@ -504,16 +956,46 @@
 }
 ''');
 
-    var classElement =
-        findElement.importFind('package:test/a.dart').class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('a.A<int>.new'),
-      elementMatcher(classElement.unnamedConstructor,
-          substitution: {'T': 'int'}),
-      classElement,
-      'A<int> Function()',
-      expectedPrefix: findElement.import('package:test/a.dart').prefix,
-    );
+    var node = findNode.constructorReference('a.A<int>.new');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: PrefixedIdentifier
+        prefix: SimpleIdentifier
+          token: a
+          staticElement: self::@prefix::a
+          staticType: null
+        period: .
+        identifier: SimpleIdentifier
+          token: A
+          staticElement: package:test/a.dart::@class::A
+          staticType: null
+        staticElement: package:test/a.dart::@class::A
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: ConstructorMember
+        base: package:test/a.dart::@class::A::@constructor::•
+        substitution: {T: int}
+      staticType: null
+    staticElement: ConstructorMember
+      base: package:test/a.dart::@class::A::@constructor::•
+      substitution: {T: int}
+  staticType: A<int> Function()
+''');
   }
 
   test_prefixedClass_generic_unnamed() async {
@@ -529,16 +1011,46 @@
 }
 ''');
 
-    var classElement =
-        findElement.importFind('package:test/a.dart').class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('a.A<int>.new;'),
-      elementMatcher(classElement.unnamedConstructor,
-          substitution: {'T': 'int'}),
-      classElement,
-      'A<int> Function()',
-      expectedPrefix: findElement.import('package:test/a.dart').prefix,
-    );
+    var node = findNode.constructorReference('a.A<int>.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: PrefixedIdentifier
+        prefix: SimpleIdentifier
+          token: a
+          staticElement: self::@prefix::a
+          staticType: null
+        period: .
+        identifier: SimpleIdentifier
+          token: A
+          staticElement: package:test/a.dart::@class::A
+          staticType: null
+        staticElement: package:test/a.dart::@class::A
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: ConstructorMember
+        base: package:test/a.dart::@class::A::@constructor::•
+        substitution: {T: int}
+      staticType: null
+    staticElement: ConstructorMember
+      base: package:test/a.dart::@class::A::@constructor::•
+      substitution: {T: int}
+  staticType: A<int> Function()
+''');
   }
 }
 
@@ -557,13 +1069,24 @@
 }
 ''');
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A.new;'),
-      classElement.unnamedConstructor,
-      classElement,
-      'A Function()',
-    );
+    var node = findNode.constructorReference('A.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: self::@class::A::@constructor::•
+      staticType: null
+    staticElement: self::@class::A::@constructor::•
+  staticType: A Function()
+''');
   }
 
   test_abstractClass_generative() async {
@@ -583,13 +1106,24 @@
           5),
     ]);
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A.new;'),
-      classElement.unnamedConstructor,
-      classElement,
-      'A Function()',
-    );
+    var node = findNode.constructorReference('A.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: self::@class::A::@constructor::•
+      staticType: null
+    staticElement: self::@class::A::@constructor::•
+  staticType: A Function()
+''');
   }
 
   test_abstractClass_redirecting() async {
@@ -611,13 +1145,24 @@
           5),
     ]);
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A.new;'),
-      classElement.unnamedConstructor,
-      classElement,
-      'A Function()',
-    );
+    var node = findNode.constructorReference('A.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: self::@class::A::@constructor::•
+      staticType: null
+    staticElement: self::@class::A::@constructor::•
+  staticType: A Function()
+''');
   }
 
   test_class_generic_inferFromContext_badTypeArgument() async {
@@ -634,14 +1179,26 @@
           contextMessages: [message('/home/test/lib/test.dart', 39, 9)]),
     ]);
 
-    var classElement = findElement.class_('A');
-    var constructorElement = classElement.getNamedConstructor('foo')!;
-    assertConstructorReference(
-      findNode.constructorReference('A.foo;'),
-      constructorElement,
-      classElement,
-      'A<Never> Function()',
-    );
+    var node = findNode.constructorReference('A.foo;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: foo
+      staticElement: self::@class::A::@constructor::foo
+      staticType: null
+      tearOffTypeArgumentTypes
+        Never
+    staticElement: self::@class::A::@constructor::foo
+  staticType: A<Never> Function()
+''');
   }
 
   test_class_generic_named_inferTypeFromContext() async {
@@ -655,14 +1212,26 @@
 }
 ''');
 
-    var classElement = findElement.class_('A');
-    var constructorElement = classElement.getNamedConstructor('foo')!;
-    assertConstructorReference(
-      findNode.constructorReference('A.foo;'),
-      constructorElement,
-      classElement,
-      'A<int> Function()',
-    );
+    var node = findNode.constructorReference('A.foo;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: foo
+      staticElement: self::@class::A::@constructor::foo
+      staticType: null
+      tearOffTypeArgumentTypes
+        int
+    staticElement: self::@class::A::@constructor::foo
+  staticType: A<int> Function()
+''');
   }
 
   test_class_generic_named_uninstantiated() async {
@@ -676,14 +1245,24 @@
 }
 ''');
 
-    var classElement = findElement.class_('A');
-    var constructorElement = classElement.getNamedConstructor('foo')!;
-    assertConstructorReference(
-      findNode.constructorReference('A.foo;'),
-      constructorElement,
-      classElement,
-      'A<T> Function<T>()',
-    );
+    var node = findNode.constructorReference('A.foo;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: foo
+      staticElement: self::@class::A::@constructor::foo
+      staticType: null
+    staticElement: self::@class::A::@constructor::foo
+  staticType: A<T> Function<T>()
+''');
   }
 
   test_class_generic_named_uninstantiated_bound() async {
@@ -697,14 +1276,24 @@
 }
 ''');
 
-    var classElement = findElement.class_('A');
-    var constructorElement = classElement.getNamedConstructor('foo')!;
-    assertConstructorReference(
-      findNode.constructorReference('A.foo;'),
-      constructorElement,
-      classElement,
-      'A<T> Function<T extends num>()',
-    );
+    var node = findNode.constructorReference('A.foo;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: foo
+      staticElement: self::@class::A::@constructor::foo
+      staticType: null
+    staticElement: self::@class::A::@constructor::foo
+  staticType: A<T> Function<T extends num>()
+''');
   }
 
   test_class_nonGeneric_const() async {
@@ -716,13 +1305,24 @@
 const a1 = A.new;
 ''');
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A.new;'),
-      classElement.unnamedConstructor,
-      classElement,
-      'A Function()',
-    );
+    var node = findNode.constructorReference('A.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: self::@class::A::@constructor::•
+      staticType: null
+    staticElement: self::@class::A::@constructor::•
+  staticType: A Function()
+''');
   }
 
   test_class_nonGeneric_named() async {
@@ -736,13 +1336,24 @@
 }
 ''');
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A.foo;'),
-      classElement.getNamedConstructor('foo')!,
-      classElement,
-      'A Function()',
-    );
+    var node = findNode.constructorReference('A.foo;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: foo
+      staticElement: self::@class::A::@constructor::foo
+      staticType: null
+    staticElement: self::@class::A::@constructor::foo
+  staticType: A Function()
+''');
   }
 
   test_class_nonGeneric_unnamed() async {
@@ -756,13 +1367,24 @@
 }
 ''');
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A.new;'),
-      classElement.unnamedConstructor,
-      classElement,
-      'A Function()',
-    );
+    var node = findNode.constructorReference('A.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: self::@class::A::@constructor::•
+      staticType: null
+    staticElement: self::@class::A::@constructor::•
+  staticType: A Function()
+''');
   }
 
   test_prefixedAlias_nonGeneric_named() async {
@@ -779,17 +1401,32 @@
 }
 ''');
 
-    var classElement =
-        findElement.importFind('package:test/a.dart').class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('a.TA.foo;'),
-      classElement.getNamedConstructor('foo'),
-      classElement,
-      'A Function()',
-      expectedPrefix: findElement.import('package:test/a.dart').prefix,
-      expectedTypeNameElement:
-          findElement.importFind('package:test/a.dart').typeAlias('TA'),
-    );
+    var node = findNode.constructorReference('a.TA.foo;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: PrefixedIdentifier
+        prefix: SimpleIdentifier
+          token: a
+          staticElement: self::@prefix::a
+          staticType: null
+        period: .
+        identifier: SimpleIdentifier
+          token: TA
+          staticElement: package:test/a.dart::@typeAlias::TA
+          staticType: null
+        staticElement: package:test/a.dart::@typeAlias::TA
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: foo
+      staticElement: package:test/a.dart::@class::A::@constructor::foo
+      staticType: null
+    staticElement: package:test/a.dart::@class::A::@constructor::foo
+  staticType: A Function()
+''');
   }
 
   test_prefixedAlias_nonGeneric_unnamed() async {
@@ -806,17 +1443,32 @@
 }
 ''');
 
-    var classElement =
-        findElement.importFind('package:test/a.dart').class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('a.TA.new;'),
-      classElement.unnamedConstructor,
-      classElement,
-      'A Function()',
-      expectedPrefix: findElement.import('package:test/a.dart').prefix,
-      expectedTypeNameElement:
-          findElement.importFind('package:test/a.dart').typeAlias('TA'),
-    );
+    var node = findNode.constructorReference('a.TA.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: PrefixedIdentifier
+        prefix: SimpleIdentifier
+          token: a
+          staticElement: self::@prefix::a
+          staticType: null
+        period: .
+        identifier: SimpleIdentifier
+          token: TA
+          staticElement: package:test/a.dart::@typeAlias::TA
+          staticType: null
+        staticElement: package:test/a.dart::@typeAlias::TA
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: package:test/a.dart::@class::A::@constructor::•
+      staticType: null
+    staticElement: package:test/a.dart::@class::A::@constructor::•
+  staticType: A Function()
+''');
   }
 
   test_prefixedClass_nonGeneric_named() async {
@@ -832,15 +1484,32 @@
 }
 ''');
 
-    var classElement =
-        findElement.importFind('package:test/a.dart').class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('a.A.foo;'),
-      classElement.getNamedConstructor('foo'),
-      classElement,
-      'A Function()',
-      expectedPrefix: findElement.import('package:test/a.dart').prefix,
-    );
+    var node = findNode.constructorReference('a.A.foo;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: PrefixedIdentifier
+        prefix: SimpleIdentifier
+          token: a
+          staticElement: self::@prefix::a
+          staticType: null
+        period: .
+        identifier: SimpleIdentifier
+          token: A
+          staticElement: package:test/a.dart::@class::A
+          staticType: null
+        staticElement: package:test/a.dart::@class::A
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: foo
+      staticElement: package:test/a.dart::@class::A::@constructor::foo
+      staticType: null
+    staticElement: package:test/a.dart::@class::A::@constructor::foo
+  staticType: A Function()
+''');
   }
 
   test_prefixedClass_nonGeneric_unnamed() async {
@@ -856,15 +1525,32 @@
 }
 ''');
 
-    var classElement =
-        findElement.importFind('package:test/a.dart').class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('a.A.new;'),
-      classElement.unnamedConstructor,
-      classElement,
-      'A Function()',
-      expectedPrefix: findElement.import('package:test/a.dart').prefix,
-    );
+    var node = findNode.constructorReference('a.A.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: PrefixedIdentifier
+        prefix: SimpleIdentifier
+          token: a
+          staticElement: self::@prefix::a
+          staticType: null
+        period: .
+        identifier: SimpleIdentifier
+          token: A
+          staticElement: package:test/a.dart::@class::A
+          staticType: null
+        staticElement: package:test/a.dart::@class::A
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: package:test/a.dart::@class::A::@constructor::•
+      staticType: null
+    staticElement: package:test/a.dart::@class::A::@constructor::•
+  staticType: A Function()
+''');
   }
 
   test_typeAlias_generic_const() async {
@@ -877,15 +1563,24 @@
 const a = TA.new;
 ''');
 
-    var classElement = findElement.class_('A');
-    var constructorElement = classElement.unnamedConstructor!;
-    assertConstructorReference(
-      findNode.constructorReference('TA.new;'),
-      constructorElement,
-      classElement,
-      'A<T> Function<T>()',
-      expectedTypeNameElement: findElement.typeAlias('TA'),
-    );
+    var node = findNode.constructorReference('TA.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: TA
+        staticElement: self::@typeAlias::TA
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: self::@class::A::@constructor::•
+      staticType: null
+    staticElement: self::@class::A::@constructor::•
+  staticType: A<T> Function<T>()
+''');
   }
 
   test_typeAlias_generic_named_uninstantiated() async {
@@ -900,15 +1595,24 @@
 }
 ''');
 
-    var classElement = findElement.class_('A');
-    var constructorElement = classElement.getNamedConstructor('foo')!;
-    assertConstructorReference(
-      findNode.constructorReference('TA.foo;'),
-      constructorElement,
-      findElement.class_('A'),
-      'A<String, U> Function<U>()',
-      expectedTypeNameElement: findElement.typeAlias('TA'),
-    );
+    var node = findNode.constructorReference('TA.foo;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: TA
+        staticElement: self::@typeAlias::TA
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: foo
+      staticElement: self::@class::A::@constructor::foo
+      staticType: null
+    staticElement: self::@class::A::@constructor::foo
+  staticType: A<String, U> Function<U>()
+''');
   }
 
   test_typeAlias_instantiated_const() async {
@@ -921,15 +1625,28 @@
 const a = TA.new;
 ''');
 
-    var classElement = findElement.class_('A');
-    var constructorElement = classElement.unnamedConstructor!;
-    assertConstructorReference(
-      findNode.constructorReference('TA.new;'),
-      elementMatcher(constructorElement, substitution: {'T': 'int'}),
-      classElement,
-      'A<int> Function()',
-      expectedTypeNameElement: findElement.typeAlias('TA'),
-    );
+    var node = findNode.constructorReference('TA.new;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: TA
+        staticElement: self::@typeAlias::TA
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: ConstructorMember
+        base: self::@class::A::@constructor::•
+        substitution: {T: int}
+      staticType: null
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::•
+      substitution: {T: int}
+  staticType: A<int> Function()
+''');
   }
 
   test_typeAlias_instantiated_named() async {
@@ -944,15 +1661,28 @@
 }
 ''');
 
-    var classElement = findElement.class_('A');
-    var constructorElement = classElement.getNamedConstructor('foo')!;
-    assertConstructorReference(
-      findNode.constructorReference('TA.foo;'),
-      elementMatcher(constructorElement, substitution: {'T': 'int'}),
-      classElement,
-      'A<int> Function()',
-      expectedTypeNameElement: findElement.typeAlias('TA'),
-    );
+    var node = findNode.constructorReference('TA.foo;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: TA
+        staticElement: self::@typeAlias::TA
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: foo
+      staticElement: ConstructorMember
+        base: self::@class::A::@constructor::foo
+        substitution: {T: int}
+      staticType: null
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::foo
+      substitution: {T: int}
+  staticType: A<int> Function()
+''');
   }
 }
 
@@ -972,13 +1702,34 @@
       error(ParserErrorCode.EXPERIMENT_NOT_ENABLED, 52, 5),
     ]);
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A<int>.i;'),
-      null,
-      classElement,
-      'dynamic',
-    );
+    var node = findNode.constructorReference('A<int>.i;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      typeArguments: TypeArgumentList
+        leftBracket: <
+        arguments
+          NamedType
+            name: SimpleIdentifier
+              token: int
+              staticElement: dart:core::@class::int
+              staticType: null
+            type: int
+        rightBracket: >
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: i
+      staticElement: <null>
+      staticType: null
+    staticElement: <null>
+  staticType: dynamic
+''');
   }
 
   test_constructorTearoff() async {
@@ -994,12 +1745,23 @@
       error(HintCode.SDK_VERSION_CONSTRUCTOR_TEAROFFS, 39, 5),
     ]);
 
-    var classElement = findElement.class_('A');
-    assertConstructorReference(
-      findNode.constructorReference('A.foo;'),
-      classElement.getNamedConstructor('foo')!,
-      classElement,
-      'A Function()',
-    );
+    var node = findNode.constructorReference('A.foo;');
+    assertResolvedNodeText(node, r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: A
+        staticElement: self::@class::A
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: foo
+      staticElement: self::@class::A::@constructor::foo
+      staticType: null
+    staticElement: self::@class::A::@constructor::foo
+  staticType: A Function()
+''');
   }
 }
diff --git a/pkg/analyzer/test/src/dart/resolution/function_reference_test.dart b/pkg/analyzer/test/src/dart/resolution/function_reference_test.dart
index 3456bd6..10b5c99 100644
--- a/pkg/analyzer/test/src/dart/resolution/function_reference_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/function_reference_test.dart
@@ -155,7 +155,7 @@
     readType: void Function<T>(T)
     writeElement: f@144
     writeType: void Function<T>(T)
-    staticElement: self::@extension::extension-0::@method::+
+    staticElement: self::@extension::0::@method::+
     staticType: void Function<T>(T)
   staticType: void Function(int)
   typeArgumentTypes
@@ -249,11 +249,25 @@
 
     // TODO(srawlins): Leave the constructor reference uninstantiated, then
     // perform generic function instantiation as a wrapping node.
-    assertConstructorReference(
-        findNode.constructorReference('C.new'),
-        findElement.unnamedConstructor('C'),
-        findElement.class_('C'),
-        'C<int> Function(int)');
+    assertResolvedNodeText(findNode.constructorReference('C.new'), r'''
+ConstructorReference
+  constructorName: ConstructorName
+    type: NamedType
+      name: SimpleIdentifier
+        token: C
+        staticElement: self::@class::C
+        staticType: null
+      type: null
+    period: .
+    name: SimpleIdentifier
+      token: new
+      staticElement: self::@class::C::@constructor::•
+      staticType: null
+      tearOffTypeArgumentTypes
+        int
+    staticElement: self::@class::C::@constructor::•
+  staticType: C<int> Function(int)
+''');
   }
 
   test_functionExpression() async {
@@ -459,7 +473,7 @@
     readType: void Function<T>(T)
     writeElement: f@144
     writeType: void Function<T>(T)
-    staticElement: self::@extension::extension-0::@method::+
+    staticElement: self::@extension::0::@method::+
     staticType: void Function<T>(T)
   staticType: void Function(int)
   typeArgumentTypes
@@ -523,7 +537,7 @@
     readType: void Function<T>(T)
     writeElement: f@144
     writeType: void Function<T>(T)
-    staticElement: self::@extension::extension-0::@method::+
+    staticElement: self::@extension::0::@method::+
     staticType: void Function<T>(T)
   staticType: void Function(int)
   typeArgumentTypes
@@ -1639,9 +1653,9 @@
     period: .
     identifier: SimpleIdentifier
       token: m
-      staticElement: self::@extension::extension-0::@method::m
+      staticElement: self::@extension::0::@method::m
       staticType: null
-    staticElement: self::@extension::extension-0::@method::m
+    staticElement: self::@extension::0::@method::m
     staticType: void Function<T>(T)
   typeArguments: TypeArgumentList
     leftBracket: <
@@ -1688,9 +1702,9 @@
     period: .
     identifier: SimpleIdentifier
       token: m
-      staticElement: self::@extension::extension-0::@method::m
+      staticElement: self::@extension::0::@method::m
       staticType: null
-    staticElement: self::@extension::extension-0::@method::m
+    staticElement: self::@extension::0::@method::m
     staticType: void Function<T>(T)
   typeArguments: TypeArgumentList
     leftBracket: <
@@ -1723,6 +1737,51 @@
         findElement.method('call'), 'int Function(int)');
   }
 
+  test_implicitCallTearoff_class_staticGetter() async {
+    await assertNoErrorsInCode('''
+class C {
+  static const v = C();
+  const C();
+  T call<T>(T t) => t;
+}
+
+void f() {
+  C.v<int>;
+}
+''');
+
+    var node = findNode.implicitCallReference('C.v<int>');
+    assertResolvedNodeText(node, r'''
+ImplicitCallReference
+  expression: PrefixedIdentifier
+    prefix: SimpleIdentifier
+      token: C
+      staticElement: self::@class::C
+      staticType: null
+    period: .
+    identifier: SimpleIdentifier
+      token: v
+      staticElement: self::@class::C::@getter::v
+      staticType: null
+    staticElement: self::@class::C::@getter::v
+    staticType: null
+  typeArguments: TypeArgumentList
+    leftBracket: <
+    arguments
+      NamedType
+        name: SimpleIdentifier
+          token: int
+          staticElement: dart:core::@class::int
+          staticType: null
+        type: int
+    rightBracket: >
+  staticElement: self::@class::C::@method::call
+  staticType: int Function(int)
+  typeArgumentTypes
+    int
+''');
+  }
+
   test_implicitCallTearoff_extensionOnNullable() async {
     await assertNoErrorsInCode('''
 Object? v = null;
@@ -1741,6 +1800,62 @@
         'void Function(int, String)');
   }
 
+  test_implicitCallTearoff_prefix_class_staticGetter() async {
+    newFile('$testPackageLibPath/a.dart', content: r'''
+class C {
+  static const v = C();
+  const C();
+  T call<T>(T t) => t;
+}
+''');
+
+    await assertNoErrorsInCode('''
+import 'a.dart' as prefix;
+
+void f() {
+  prefix.C.v<int>;
+}
+''');
+
+    var node = findNode.implicitCallReference('C.v<int>');
+    assertResolvedNodeText(node, r'''
+ImplicitCallReference
+  expression: PropertyAccess
+    target: PrefixedIdentifier
+      prefix: SimpleIdentifier
+        token: prefix
+        staticElement: self::@prefix::prefix
+        staticType: null
+      period: .
+      identifier: SimpleIdentifier
+        token: C
+        staticElement: package:test/a.dart::@class::C
+        staticType: null
+      staticElement: package:test/a.dart::@class::C
+      staticType: null
+    operator: .
+    propertyName: SimpleIdentifier
+      token: v
+      staticElement: package:test/a.dart::@class::C::@getter::v
+      staticType: C
+    staticType: C
+  typeArguments: TypeArgumentList
+    leftBracket: <
+    arguments
+      NamedType
+        name: SimpleIdentifier
+          token: int
+          staticElement: dart:core::@class::int
+          staticType: null
+        type: int
+    rightBracket: >
+  staticElement: package:test/a.dart::@class::C::@method::call
+  staticType: int Function(int)
+  typeArgumentTypes
+    int
+''');
+  }
+
   test_implicitCallTearoff_prefixed() async {
     newFile('$testPackageLibPath/a.dart', content: '''
 class C {
@@ -2209,7 +2324,7 @@
       operator: .
       propertyName: SimpleIdentifier
         token: foo
-        staticElement: self::@extension::extension-0::@method::foo
+        staticElement: self::@extension::0::@method::foo
         staticType: void Function<T>(T)
       staticType: void Function<T>(T)
     operator: .
diff --git a/pkg/analyzer/test/src/dart/resolution/metadata_test.dart b/pkg/analyzer/test/src/dart/resolution/metadata_test.dart
index b28cf4d..458a44b 100644
--- a/pkg/analyzer/test/src/dart/resolution/metadata_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/metadata_test.dart
@@ -95,6 +95,32 @@
 ''');
   }
 
+  test_onEnumConstant() async {
+    await assertNoErrorsInCode(r'''
+enum E {
+  @v
+  v;
+}
+''');
+
+    var annotation = findNode.annotation('@v');
+    assertResolvedNodeText(annotation, '''
+Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: v
+    staticElement: self::@enum::E::@getter::v
+    staticType: null
+  element: self::@enum::E::@getter::v
+''');
+
+    _assertAnnotationValueText(annotation, '''
+E
+  _name: String v
+  index: int 0
+''');
+  }
+
   test_onFieldFormal() async {
     await assertNoErrorsInCode(r'''
 class A {
diff --git a/pkg/analyzer/test/src/dart/resolution/resolution.dart b/pkg/analyzer/test/src/dart/resolution/resolution.dart
index 77f3669..cce0e84 100644
--- a/pkg/analyzer/test/src/dart/resolution/resolution.dart
+++ b/pkg/analyzer/test/src/dart/resolution/resolution.dart
@@ -163,36 +163,6 @@
     }
   }
 
-  void assertConstructorReference(
-    ConstructorReference node,
-    Object? expectedConstructorElement,
-    ClassElement expectedClassElement,
-    String expectedType, {
-    PrefixElement? expectedPrefix,
-    Element? expectedTypeNameElement,
-  }) {
-    var actualConstructorName = node.constructorName.name;
-    if (actualConstructorName != null) {
-      assertConstructorElement(
-        actualConstructorName.staticElement as ConstructorElement?,
-        expectedConstructorElement,
-      );
-    }
-
-    assertElement(node, expectedConstructorElement);
-    assertType(node, expectedType);
-
-    var namedType = node.constructorName.type;
-    expectedTypeNameElement ??= expectedClassElement;
-    assertNamedType(
-      namedType, expectedTypeNameElement,
-      // The [NamedType] child node of the [ConstructorName] should not have a
-      // static type.
-      null,
-      expectedPrefix: expectedPrefix,
-    );
-  }
-
   void assertConstructors(ClassElement class_, List<String> expected) {
     expect(
       class_.constructors.map((c) {
@@ -427,7 +397,7 @@
 
   /// TODO(srawlins): Refactor to accept an `Object? expectedConstructor` which
   /// can accept `elementMatcher` for generics, and simplify, similar to
-  /// [assertConstructorReference].
+  /// `assertConstructorReference`.
   void assertInstanceCreation(
     InstanceCreationExpression creation,
     ClassElement expectedClassElement,
diff --git a/pkg/analyzer/test/src/diagnostics/argument_type_not_assignable_test.dart b/pkg/analyzer/test/src/diagnostics/argument_type_not_assignable_test.dart
index 432c0e1..59d97c5 100644
--- a/pkg/analyzer/test/src/diagnostics/argument_type_not_assignable_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/argument_type_not_assignable_test.dart
@@ -93,6 +93,7 @@
 }
 ''', [
       error(CompileTimeErrorCode.ARGUMENT_TYPE_NOT_ASSIGNABLE, 13, 1),
+      error(CompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH, 13, 1),
     ]);
   }
 
diff --git a/pkg/analyzer/test/src/diagnostics/assert_in_redirecting_constructor_test.dart b/pkg/analyzer/test/src/diagnostics/assert_in_redirecting_constructor_test.dart
index a254d03..93ccda1 100644
--- a/pkg/analyzer/test/src/diagnostics/assert_in_redirecting_constructor_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/assert_in_redirecting_constructor_test.dart
@@ -58,17 +58,17 @@
   test_enum_assertBeforeRedirection() async {
     await assertErrorsInCode(r'''
 enum E {
-  v(0);
+  v(42);
   const E(int x) : assert(x > 0), this.name();
   const E.name();
 }
-''', [error(CompileTimeErrorCode.ASSERT_IN_REDIRECTING_CONSTRUCTOR, 36, 13)]);
+''', [error(CompileTimeErrorCode.ASSERT_IN_REDIRECTING_CONSTRUCTOR, 37, 13)]);
   }
 
   test_enum_justAssert() async {
     await assertNoErrorsInCode(r'''
 enum E {
-  v(0);
+  v(42);
   const E(int x) : assert(x > 0);
 }
 ''');
@@ -87,10 +87,10 @@
   test_enum_redirectionBeforeAssert() async {
     await assertErrorsInCode(r'''
 enum E {
-  v(0);
+  v(42);
   const E(int x) : this.name(), assert(x > 0);
   const E.name();
 }
-''', [error(CompileTimeErrorCode.ASSERT_IN_REDIRECTING_CONSTRUCTOR, 49, 13)]);
+''', [error(CompileTimeErrorCode.ASSERT_IN_REDIRECTING_CONSTRUCTOR, 50, 13)]);
   }
 }
diff --git a/pkg/analyzer/test/src/diagnostics/const_constructor_param_type_mismatch_test.dart b/pkg/analyzer/test/src/diagnostics/const_constructor_param_type_mismatch_test.dart
index cdd3c81..5cb3c4e 100644
--- a/pkg/analyzer/test/src/diagnostics/const_constructor_param_type_mismatch_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/const_constructor_param_type_mismatch_test.dart
@@ -104,6 +104,32 @@
     ]);
   }
 
+  test_enum_int_null() async {
+    await assertErrorsInCode(r'''
+const dynamic a = null;
+
+enum E {
+  v(a);
+  const E(int a);
+}
+''', [
+      error(CompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH, 38, 1),
+    ]);
+  }
+
+  test_enum_int_String() async {
+    await assertErrorsInCode(r'''
+const dynamic a = '0';
+
+enum E {
+  v(a);
+  const E(int a);
+}
+''', [
+      error(CompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH, 37, 1),
+    ]);
+  }
+
   test_int_to_double_reference_from_other_library_other_file_after() async {
     newFile('$testPackageLibPath/other.dart', content: '''
 import 'test.dart';
diff --git a/pkg/analyzer/test/src/diagnostics/const_eval_throws_exception_test.dart b/pkg/analyzer/test/src/diagnostics/const_eval_throws_exception_test.dart
index 6c17ac2..f5911ee 100644
--- a/pkg/analyzer/test/src/diagnostics/const_eval_throws_exception_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/const_eval_throws_exception_test.dart
@@ -53,6 +53,18 @@
       error(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION, 129, 18),
     ]);
   }
+
+  test_enum_constructor_initializer_asExpression() async {
+    await assertErrorsInCode(r'''
+enum E {
+  v();
+  final int x;
+  const E({int? x}) : x = x as int;
+}
+''', [
+      error(CompileTimeErrorCode.CONST_EVAL_THROWS_EXCEPTION, 11, 3),
+    ]);
+  }
 }
 
 @reflectiveTest
diff --git a/pkg/analyzer/test/src/diagnostics/enum_with_name_values_test.dart b/pkg/analyzer/test/src/diagnostics/enum_with_name_values_test.dart
new file mode 100644
index 0000000..8166ec8
--- /dev/null
+++ b/pkg/analyzer/test/src/diagnostics/enum_with_name_values_test.dart
@@ -0,0 +1,27 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analyzer/src/error/codes.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import '../dart/resolution/context_collection_resolution.dart';
+
+main() {
+  defineReflectiveSuite(() {
+    defineReflectiveTests(EnumWithNameValuesTest);
+  });
+}
+
+@reflectiveTest
+class EnumWithNameValuesTest extends PubPackageResolutionTest {
+  test_name() async {
+    await assertErrorsInCode(r'''
+enum values {
+  v
+}
+''', [
+      error(CompileTimeErrorCode.ENUM_WITH_NAME_VALUES, 5, 6),
+    ]);
+  }
+}
diff --git a/pkg/analyzer/test/src/diagnostics/illegal_concrete_enum_member_inheritance_test.dart b/pkg/analyzer/test/src/diagnostics/illegal_concrete_enum_member_inheritance_test.dart
index ecfecef..e5c9989 100644
--- a/pkg/analyzer/test/src/diagnostics/illegal_concrete_enum_member_inheritance_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/illegal_concrete_enum_member_inheritance_test.dart
@@ -166,6 +166,45 @@
 ''');
   }
 
+  test_index_getter_fromImplements() async {
+    await assertNoErrorsInCode(r'''
+class A {
+  int get index => 0;
+}
+
+enum E implements A {
+  v;
+}
+''');
+  }
+
+  test_index_getter_fromWith() async {
+    await assertErrorsInCode(r'''
+mixin M {
+  int get index => 0;
+}
+
+enum E with M {
+  v;
+}
+''', [
+      error(
+          CompileTimeErrorCode.ILLEGAL_CONCRETE_ENUM_MEMBER_INHERITANCE, 40, 1),
+    ]);
+  }
+
+  test_index_setter_fromWith() async {
+    await assertNoErrorsInCode(r'''
+mixin M {
+  set index(int _) {}
+}
+
+enum E with M {
+  v;
+}
+''');
+  }
+
   test_operatorEqEq_fromImplements() async {
     await assertNoErrorsInCode(r'''
 class A {
diff --git a/pkg/analyzer/test/src/diagnostics/illegal_enum_values_inheritance_test.dart b/pkg/analyzer/test/src/diagnostics/illegal_enum_values_inheritance_test.dart
index 234df7e..4c32c16 100644
--- a/pkg/analyzer/test/src/diagnostics/illegal_enum_values_inheritance_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/illegal_enum_values_inheritance_test.dart
@@ -87,7 +87,35 @@
     ]);
   }
 
-  test_enum_method() async {
+  test_enum_getter_fromImplements() async {
+    await assertErrorsInCode(r'''
+class A {
+  int get values => 0;
+}
+
+enum E implements A {
+  v
+}
+''', [
+      error(CompileTimeErrorCode.ILLEGAL_ENUM_VALUES_INHERITANCE, 41, 1),
+    ]);
+  }
+
+  test_enum_method_fromImplements() async {
+    await assertErrorsInCode(r'''
+class A {
+  int values() => 0;
+}
+
+enum E implements A {
+  v
+}
+''', [
+      error(CompileTimeErrorCode.ILLEGAL_ENUM_VALUES_INHERITANCE, 39, 1),
+    ]);
+  }
+
+  test_enum_method_fromWith() async {
     await assertErrorsInCode(r'''
 mixin M {
   int values() => 0;
@@ -101,6 +129,34 @@
     ]);
   }
 
+  test_enum_setter_fromImplements() async {
+    await assertErrorsInCode(r'''
+class A {
+  set values(int _) {}
+}
+
+enum E implements A {
+  v
+}
+''', [
+      error(CompileTimeErrorCode.ILLEGAL_ENUM_VALUES_INHERITANCE, 41, 1),
+    ]);
+  }
+
+  test_enum_setter_fromWith() async {
+    await assertErrorsInCode(r'''
+mixin M {
+  set values(int _) {}
+}
+
+enum E with M {
+  v
+}
+''', [
+      error(CompileTimeErrorCode.ILLEGAL_ENUM_VALUES_INHERITANCE, 41, 1),
+    ]);
+  }
+
   test_mixin_field() async {
     await assertErrorsInCode(r'''
 class A {
diff --git a/pkg/analyzer/test/src/diagnostics/missing_required_param_test.dart b/pkg/analyzer/test/src/diagnostics/missing_required_param_test.dart
index e066e13..e089c34 100644
--- a/pkg/analyzer/test/src/diagnostics/missing_required_param_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/missing_required_param_test.dart
@@ -121,6 +121,7 @@
 }
 ''', [
       error(CompileTimeErrorCode.MISSING_REQUIRED_ARGUMENT, 11, 1),
+      error(CompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH, 11, 3),
     ]);
   }
 
@@ -132,6 +133,7 @@
 }
 ''', [
       error(CompileTimeErrorCode.MISSING_REQUIRED_ARGUMENT, 11, 1),
+      error(CompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH, 11, 1),
     ]);
   }
 
diff --git a/pkg/analyzer/test/src/diagnostics/not_enough_positional_arguments_test.dart b/pkg/analyzer/test/src/diagnostics/not_enough_positional_arguments_test.dart
index af89c90..78a8782 100644
--- a/pkg/analyzer/test/src/diagnostics/not_enough_positional_arguments_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/not_enough_positional_arguments_test.dart
@@ -64,6 +64,7 @@
   const E(int a);
 }
 ''', [
+      error(CompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH, 11, 3),
       error(CompileTimeErrorCode.NOT_ENOUGH_POSITIONAL_ARGUMENTS, 12, 2),
     ]);
   }
@@ -75,6 +76,7 @@
   const E(int a);
 }
 ''', [
+      error(CompileTimeErrorCode.CONST_CONSTRUCTOR_PARAM_TYPE_MISMATCH, 11, 1),
       error(CompileTimeErrorCode.NOT_ENOUGH_POSITIONAL_ARGUMENTS, 11, 1),
     ]);
   }
diff --git a/pkg/analyzer/test/src/diagnostics/recursive_compile_time_constant_test.dart b/pkg/analyzer/test/src/diagnostics/recursive_compile_time_constant_test.dart
index 325c407..e65cbff 100644
--- a/pkg/analyzer/test/src/diagnostics/recursive_compile_time_constant_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/recursive_compile_time_constant_test.dart
@@ -25,6 +25,42 @@
     ]);
   }
 
+  test_enum_constant_values() async {
+    await assertErrorsInCode(r'''
+enum E {
+  v(values);
+  const E(Object a);
+}
+''', [
+      error(CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT, 11, 1),
+    ]);
+  }
+
+  test_enum_constants() async {
+    await assertErrorsInCode(r'''
+enum E {
+  v1(v2), v2(v1);
+  const E(E other);
+}
+''', [
+      error(CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT, 11, 2),
+      error(CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT, 19, 2),
+    ]);
+  }
+
+  test_enum_fields() async {
+    await assertErrorsInCode(r'''
+enum E {
+  v;
+  static const x = y + 1;
+  static const y = x + 1;
+}
+''', [
+      error(CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT, 29, 1),
+      error(CompileTimeErrorCode.RECURSIVE_COMPILE_TIME_CONSTANT, 55, 1),
+    ]);
+  }
+
   test_field() async {
     await assertErrorsInCode(r'''
 class A {
diff --git a/pkg/analyzer/test/src/diagnostics/test_all.dart b/pkg/analyzer/test/src/diagnostics/test_all.dart
index 0584d0e..689de3e 100644
--- a/pkg/analyzer/test/src/diagnostics/test_all.dart
+++ b/pkg/analyzer/test/src/diagnostics/test_all.dart
@@ -166,6 +166,7 @@
 import 'enum_mixin_with_instance_variable_test.dart'
     as enum_mixin_with_instance_variable;
 import 'enum_with_abstract_member_test.dart' as enum_with_abstract_member;
+import 'enum_with_name_values_test.dart' as enum_with_name_values;
 import 'equal_elements_in_const_set_test.dart' as equal_elements_in_const_set;
 import 'equal_elements_in_set_test.dart' as equal_elements_in_set;
 import 'equal_keys_in_const_map_test.dart' as equal_keys_in_const_map;
@@ -906,6 +907,7 @@
     enum_instantiated_to_bounds_is_not_well_bounded.main();
     enum_mixin_with_instance_variable.main();
     enum_with_abstract_member.main();
+    enum_with_name_values.main();
     equal_elements_in_const_set.main();
     equal_elements_in_set.main();
     equal_keys_in_const_map.main();
diff --git a/pkg/analyzer/test/src/diagnostics/unused_element_test.dart b/pkg/analyzer/test/src/diagnostics/unused_element_test.dart
index b61a659..74c8fa5 100644
--- a/pkg/analyzer/test/src/diagnostics/unused_element_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/unused_element_test.dart
@@ -89,6 +89,46 @@
     ]);
   }
 
+  test_enum_constructor_parameter_optionalNamed_isUsed() async {
+    await assertNoErrorsInCode(r'''
+enum E {
+  v(a: 0);
+  const E({int? a});
+}
+''');
+  }
+
+  test_enum_constructor_parameter_optionalNamed_notUsed() async {
+    await assertErrorsInCode(r'''
+enum E {
+  v1, v2();
+  const E({int? a});
+}
+''', [
+      error(HintCode.UNUSED_ELEMENT_PARAMETER, 37, 1),
+    ]);
+  }
+
+  test_enum_constructor_parameter_optionalPositional_isUsed() async {
+    await assertNoErrorsInCode(r'''
+enum E {
+  v(0);
+  const E([int? a]);
+}
+''');
+  }
+
+  test_enum_constructor_parameter_optionalPositional_notUsed() async {
+    await assertErrorsInCode(r'''
+enum E {
+  v1, v2();
+  const E([int? a]);
+}
+''', [
+      error(HintCode.UNUSED_ELEMENT_PARAMETER, 37, 1),
+    ]);
+  }
+
   test_optionalParameter_isUsed_genericConstructor() async {
     await assertNoErrorsInCode('''
 class C<T> {
diff --git a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
index 8978bb1..107d0d6 100644
--- a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
+++ b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
@@ -684,6 +684,7 @@
     _writeln('ImplicitCallReference');
     _withIndent(() {
       _writeNamedChildEntities(node);
+      _writeElement('staticElement', node.staticElement);
       _writeType('staticType', node.staticType);
       _writeTypeList('typeArgumentTypes', node.typeArgumentTypes);
     });
diff --git a/pkg/analyzer/test/src/summary/resynthesize_common.dart b/pkg/analyzer/test/src/summary/resynthesize_common.dart
index bc151cc..4192d31 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_common.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_common.dart
@@ -18120,6 +18120,98 @@
 ''');
   }
 
+  test_enum_constructor_initializer() async {
+    var library = await checkLibrary(r'''
+enum E<T> {
+  v;
+  final int x;
+  const E(T? a) : assert(a is T), x = 0;
+}
+''');
+    checkElementText(library, r'''
+library
+  definingUnit
+    enums
+      enum E @5
+        typeParameters
+          covariant T @7
+            defaultType: dynamic
+        supertype: Enum
+        fields
+          static const enumConstant v @14
+            type: E<dynamic>
+            constantInitializer
+              InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E<dynamic>
+                  staticElement: ConstructorMember
+                    base: self::@enum::E::@constructor::•
+                    substitution: {T: dynamic}
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  rightParenthesis: ) @0
+                staticType: E<dynamic>
+          synthetic static const values @-1
+            type: List<E<dynamic>>
+            constantInitializer
+              ListLiteral
+                leftBracket: [ @0
+                elements
+                  SimpleIdentifier
+                    token: v @-1
+                    staticElement: self::@enum::E::@getter::v
+                    staticType: E<dynamic>
+                rightBracket: ] @0
+                staticType: List<E<dynamic>>
+          final x @29
+            type: int
+        constructors
+          const @40
+            parameters
+              requiredPositional a @45
+                type: T?
+            constantInitializers
+              AssertInitializer
+                assertKeyword: assert @50
+                leftParenthesis: ( @56
+                condition: IsExpression
+                  expression: SimpleIdentifier
+                    token: a @57
+                    staticElement: a@45
+                    staticType: T?
+                  isOperator: is @59
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: T @62
+                      staticElement: T@7
+                      staticType: null
+                    type: T
+                  staticType: bool
+                rightParenthesis: ) @63
+              ConstructorFieldInitializer
+                fieldName: SimpleIdentifier
+                  token: x @66
+                  staticElement: self::@enum::E::@field::x
+                  staticType: null
+                equals: = @68
+                expression: IntegerLiteral
+                  literal: 0 @70
+                  staticType: int
+        accessors
+          synthetic static get v @-1
+            returnType: E<dynamic>
+          synthetic static get values @-1
+            returnType: List<E<dynamic>>
+          synthetic get x @-1
+            returnType: int
+''');
+  }
+
   test_enum_documented() async {
     var library = await checkLibrary('''
 // Extra comment so doc comment offset != 0
@@ -21963,6 +22055,7 @@
                         token: c @68
                         staticElement: c@52
                         staticType: C
+                      staticElement: self::@class::C::@method::call
                       staticType: void Function()
                   rightParenthesis: ) @69
                 staticElement: self::@class::D::@constructor::named
@@ -26433,7 +26526,7 @@
 ''');
   }
 
-  test_metadata_enumConstantDeclaration() async {
+  test_metadata_enum_constant() async {
     var library = await checkLibrary('const a = 42; enum E { @a v }');
     checkElementText(library, r'''
 library
@@ -26498,7 +26591,7 @@
 ''');
   }
 
-  test_metadata_enumConstantDeclaration_instanceCreation() async {
+  test_metadata_enum_constant_instanceCreation() async {
     var library = await checkLibrary('''
 class A {
   final dynamic value;
@@ -26644,6 +26737,395 @@
 ''');
   }
 
+  test_metadata_enum_constant_self() async {
+    var library = await checkLibrary(r'''
+enum E {
+  @v
+  v
+}
+''');
+    checkElementText(library, r'''
+library
+  definingUnit
+    enums
+      enum E @5
+        supertype: Enum
+        fields
+          static const enumConstant v @16
+            metadata
+              Annotation
+                atSign: @ @11
+                name: SimpleIdentifier
+                  token: v @12
+                  staticElement: self::@enum::E::@getter::v
+                  staticType: null
+                element: self::@enum::E::@getter::v
+            type: E
+            constantInitializer
+              InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  staticElement: self::@enum::E::@constructor::•
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  rightParenthesis: ) @0
+                staticType: E
+          synthetic static const values @-1
+            type: List<E>
+            constantInitializer
+              ListLiteral
+                leftBracket: [ @0
+                elements
+                  SimpleIdentifier
+                    token: v @-1
+                    staticElement: self::@enum::E::@getter::v
+                    staticType: E
+                rightBracket: ] @0
+                staticType: List<E>
+        constructors
+          synthetic const @-1
+        accessors
+          synthetic static get v @-1
+            returnType: E
+          synthetic static get values @-1
+            returnType: List<E>
+''');
+  }
+
+  test_metadata_enum_constructor() async {
+    var library = await checkLibrary(r'''
+const a = 42;
+enum E {
+  v;
+  @a
+  const E();
+}
+''');
+    checkElementText(library, r'''
+library
+  definingUnit
+    enums
+      enum E @19
+        supertype: Enum
+        fields
+          static const enumConstant v @25
+            type: E
+            constantInitializer
+              InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  staticElement: self::@enum::E::@constructor::•
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  rightParenthesis: ) @0
+                staticType: E
+          synthetic static const values @-1
+            type: List<E>
+            constantInitializer
+              ListLiteral
+                leftBracket: [ @0
+                elements
+                  SimpleIdentifier
+                    token: v @-1
+                    staticElement: self::@enum::E::@getter::v
+                    staticType: E
+                rightBracket: ] @0
+                staticType: List<E>
+        constructors
+          const @41
+            metadata
+              Annotation
+                atSign: @ @30
+                name: SimpleIdentifier
+                  token: a @31
+                  staticElement: self::@getter::a
+                  staticType: null
+                element: self::@getter::a
+        accessors
+          synthetic static get v @-1
+            returnType: E
+          synthetic static get values @-1
+            returnType: List<E>
+    topLevelVariables
+      static const a @6
+        type: int
+        constantInitializer
+          IntegerLiteral
+            literal: 42 @10
+            staticType: int
+    accessors
+      synthetic static get a @-1
+        returnType: int
+''');
+  }
+
+  test_metadata_enum_method() async {
+    var library = await checkLibrary(r'''
+const a = 42;
+enum E {
+  v;
+  @a
+  void foo() {}
+}
+''');
+    checkElementText(library, r'''
+library
+  definingUnit
+    enums
+      enum E @19
+        supertype: Enum
+        fields
+          static const enumConstant v @25
+            type: E
+            constantInitializer
+              InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  staticElement: self::@enum::E::@constructor::•
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  rightParenthesis: ) @0
+                staticType: E
+          synthetic static const values @-1
+            type: List<E>
+            constantInitializer
+              ListLiteral
+                leftBracket: [ @0
+                elements
+                  SimpleIdentifier
+                    token: v @-1
+                    staticElement: self::@enum::E::@getter::v
+                    staticType: E
+                rightBracket: ] @0
+                staticType: List<E>
+        constructors
+          synthetic const @-1
+        accessors
+          synthetic static get v @-1
+            returnType: E
+          synthetic static get values @-1
+            returnType: List<E>
+        methods
+          foo @40
+            metadata
+              Annotation
+                atSign: @ @30
+                name: SimpleIdentifier
+                  token: a @31
+                  staticElement: self::@getter::a
+                  staticType: null
+                element: self::@getter::a
+            returnType: void
+    topLevelVariables
+      static const a @6
+        type: int
+        constantInitializer
+          IntegerLiteral
+            literal: 42 @10
+            staticType: int
+    accessors
+      synthetic static get a @-1
+        returnType: int
+''');
+  }
+
+  test_metadata_enum_scope() async {
+    var library = await checkLibrary(r'''
+const foo = 0;
+
+@foo
+enum E<@foo T> {
+  v;
+  static const foo = 1;
+  @foo
+  void bar() {}
+}
+''');
+    checkElementText(library, r'''
+library
+  definingUnit
+    enums
+      enum E @26
+        metadata
+          Annotation
+            atSign: @ @16
+            name: SimpleIdentifier
+              token: foo @17
+              staticElement: self::@getter::foo
+              staticType: null
+            element: self::@getter::foo
+        typeParameters
+          covariant T @33
+            defaultType: dynamic
+            metadata
+              Annotation
+                atSign: @ @28
+                name: SimpleIdentifier
+                  token: foo @29
+                  staticElement: self::@getter::foo
+                  staticType: null
+                element: self::@getter::foo
+        supertype: Enum
+        fields
+          static const enumConstant v @40
+            type: E<dynamic>
+            constantInitializer
+              InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E<dynamic>
+                  staticElement: ConstructorMember
+                    base: self::@enum::E::@constructor::•
+                    substitution: {T: dynamic}
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  rightParenthesis: ) @0
+                staticType: E<dynamic>
+          synthetic static const values @-1
+            type: List<E<dynamic>>
+            constantInitializer
+              ListLiteral
+                leftBracket: [ @0
+                elements
+                  SimpleIdentifier
+                    token: v @-1
+                    staticElement: self::@enum::E::@getter::v
+                    staticType: E<dynamic>
+                rightBracket: ] @0
+                staticType: List<E<dynamic>>
+          static const foo @58
+            type: int
+            constantInitializer
+              IntegerLiteral
+                literal: 1 @64
+                staticType: int
+        constructors
+          synthetic const @-1
+        accessors
+          synthetic static get v @-1
+            returnType: E<dynamic>
+          synthetic static get values @-1
+            returnType: List<E<dynamic>>
+          synthetic static get foo @-1
+            returnType: int
+        methods
+          bar @81
+            metadata
+              Annotation
+                atSign: @ @69
+                name: SimpleIdentifier
+                  token: foo @70
+                  staticElement: self::@enum::E::@getter::foo
+                  staticType: null
+                element: self::@enum::E::@getter::foo
+            returnType: void
+    topLevelVariables
+      static const foo @6
+        type: int
+        constantInitializer
+          IntegerLiteral
+            literal: 0 @12
+            staticType: int
+    accessors
+      synthetic static get foo @-1
+        returnType: int
+''');
+  }
+
+  test_metadata_enum_typeParameter() async {
+    var library = await checkLibrary('''
+const a = 42;
+enum E<@a T> {
+  v
+}
+''');
+    checkElementText(library, r'''
+library
+  definingUnit
+    enums
+      enum E @19
+        typeParameters
+          covariant T @24
+            defaultType: dynamic
+            metadata
+              Annotation
+                atSign: @ @21
+                name: SimpleIdentifier
+                  token: a @22
+                  staticElement: self::@getter::a
+                  staticType: null
+                element: self::@getter::a
+        supertype: Enum
+        fields
+          static const enumConstant v @31
+            type: E<dynamic>
+            constantInitializer
+              InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E<dynamic>
+                  staticElement: ConstructorMember
+                    base: self::@enum::E::@constructor::•
+                    substitution: {T: dynamic}
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  rightParenthesis: ) @0
+                staticType: E<dynamic>
+          synthetic static const values @-1
+            type: List<E<dynamic>>
+            constantInitializer
+              ListLiteral
+                leftBracket: [ @0
+                elements
+                  SimpleIdentifier
+                    token: v @-1
+                    staticElement: self::@enum::E::@getter::v
+                    staticType: E<dynamic>
+                rightBracket: ] @0
+                staticType: List<E<dynamic>>
+        constructors
+          synthetic const @-1
+        accessors
+          synthetic static get v @-1
+            returnType: E<dynamic>
+          synthetic static get values @-1
+            returnType: List<E<dynamic>>
+    topLevelVariables
+      static const a @6
+        type: int
+        constantInitializer
+          IntegerLiteral
+            literal: 42 @10
+            staticType: int
+    accessors
+      synthetic static get a @-1
+        returnType: int
+''');
+  }
+
   test_metadata_enumDeclaration() async {
     var library = await checkLibrary('const a = 42; @a enum E { v }');
     checkElementText(library, r'''
@@ -29287,81 +29769,6 @@
 ''');
   }
 
-  test_metadata_typeParameter_ofEnum() async {
-    var library = await checkLibrary('''
-const a = 42;
-enum E<@a T> {
-  v
-}
-''');
-    checkElementText(library, r'''
-library
-  definingUnit
-    enums
-      enum E @19
-        typeParameters
-          covariant T @24
-            defaultType: dynamic
-            metadata
-              Annotation
-                atSign: @ @21
-                name: SimpleIdentifier
-                  token: a @22
-                  staticElement: <null>
-                  staticType: null
-                element: <null>
-        supertype: Enum
-        fields
-          static const enumConstant v @31
-            type: E<dynamic>
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: SimpleIdentifier
-                      token: E @-1
-                      staticElement: self::@enum::E
-                      staticType: null
-                    type: E<dynamic>
-                  staticElement: ConstructorMember
-                    base: self::@enum::E::@constructor::•
-                    substitution: {T: dynamic}
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E<dynamic>
-          synthetic static const values @-1
-            type: List<E<dynamic>>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: self::@enum::E::@getter::v
-                    staticType: E<dynamic>
-                rightBracket: ] @0
-                staticType: List<E<dynamic>>
-        constructors
-          synthetic const @-1
-        accessors
-          synthetic static get v @-1
-            returnType: E<dynamic>
-          synthetic static get values @-1
-            returnType: List<E<dynamic>>
-    topLevelVariables
-      static const a @6
-        type: int
-        constantInitializer
-          IntegerLiteral
-            literal: 42 @10
-            staticType: int
-    accessors
-      synthetic static get a @-1
-        returnType: int
-''');
-  }
-
   test_metadata_typeParameter_ofFunction() async {
     var library = await checkLibrary('const a = null; f<@a T>() {}');
     checkElementText(library, r'''
diff --git a/pkg/compiler/lib/src/compiler.dart b/pkg/compiler/lib/src/compiler.dart
index 998e90f..d1ddb50 100644
--- a/pkg/compiler/lib/src/compiler.dart
+++ b/pkg/compiler/lib/src/compiler.dart
@@ -26,7 +26,7 @@
 import 'diagnostics/messages.dart' show Message, MessageTemplate;
 import 'dump_info.dart' show DumpInfoTask;
 import 'elements/entities.dart';
-import 'enqueue.dart' show Enqueuer, EnqueueTask, ResolutionEnqueuer;
+import 'enqueue.dart' show Enqueuer, ResolutionEnqueuer;
 import 'environment.dart';
 import 'inferrer/abstract_value_domain.dart' show AbstractValueStrategy;
 import 'inferrer/trivial.dart' show TrivialAbstractValueStrategy;
@@ -94,6 +94,8 @@
   ir.Component componentForTesting;
   JClosedWorld backendClosedWorldForTesting;
   DataSourceIndices closedWorldIndicesForTesting;
+  ResolutionEnqueuer resolutionEnqueuerForTesting;
+  CodegenEnqueuer codegenEnqueuerForTesting;
 
   DiagnosticReporter get reporter => _reporter;
   Map<Entity, WorldImpact> get impactCache => _impactCache;
@@ -111,7 +113,7 @@
 
   GenericTask selfTask;
 
-  EnqueueTask enqueuer;
+  GenericTask enqueueTask;
   DeferredLoadTask deferredLoadTask;
   DumpInfoTask dumpInfoTask;
   SerializationTask serializationTask;
@@ -173,16 +175,14 @@
       progress = InteractiveProgress();
     }
 
-    enqueuer = EnqueueTask(this);
-
     tasks = [
+      // [enqueueTask] is created earlier because it contains the resolution
+      // world objects needed by other tasks.
+      enqueueTask = GenericTask('Enqueue', measurer),
       kernelLoader = KernelLoaderTask(options, provider, reporter, measurer),
       kernelFrontEndTask,
       globalInference = GlobalTypeInferenceTask(this),
       deferredLoadTask = frontendStrategy.createDeferredLoadTask(this),
-      // [enqueuer] is created earlier because it contains the resolution world
-      // objects needed by other tasks.
-      enqueuer,
       dumpInfoTask = DumpInfoTask(this),
       selfTask,
       serializationTask = SerializationTask(
@@ -422,8 +422,11 @@
   }
 
   JClosedWorld computeClosedWorld(Uri rootLibraryUri, Iterable<Uri> libraries) {
-    ResolutionEnqueuer resolutionEnqueuer = enqueuer.createResolutionEnqueuer();
+    ResolutionEnqueuer resolutionEnqueuer = frontendStrategy
+        .createResolutionEnqueuer(enqueueTask, this)
+      ..onEmptyForTesting = onResolutionQueueEmptyForTesting;
     if (retainDataForTesting) {
+      resolutionEnqueuerForTesting = resolutionEnqueuer;
       resolutionWorldBuilderForTesting = resolutionEnqueuer.worldBuilder;
     }
     frontendStrategy.onResolutionStart();
@@ -500,8 +503,16 @@
         codegenResults.globalTypeInferenceResults;
     JClosedWorld closedWorld = globalInferenceResults.closedWorld;
     CodegenInputs codegenInputs = codegenResults.codegenInputs;
-    CodegenEnqueuer codegenEnqueuer = enqueuer.createCodegenEnqueuer(
-        closedWorld, globalInferenceResults, codegenInputs, codegenResults);
+    CodegenEnqueuer codegenEnqueuer = backendStrategy.createCodegenEnqueuer(
+        enqueueTask,
+        closedWorld,
+        globalInferenceResults,
+        codegenInputs,
+        codegenResults)
+      ..onEmptyForTesting = onCodegenQueueEmptyForTesting;
+    if (retainDataForTesting) {
+      codegenEnqueuerForTesting = codegenEnqueuer;
+    }
     _codegenWorldBuilder = codegenEnqueuer.worldBuilder;
 
     FunctionEntity mainFunction = closedWorld.elementEnvironment.mainFunction;
diff --git a/pkg/compiler/lib/src/enqueue.dart b/pkg/compiler/lib/src/enqueue.dart
index 470e510..c95ad1b 100644
--- a/pkg/compiler/lib/src/enqueue.dart
+++ b/pkg/compiler/lib/src/enqueue.dart
@@ -7,18 +7,13 @@
 import 'dart:collection' show Queue;
 
 import 'common.dart';
-import 'common/codegen.dart';
 import 'common/elements.dart' show ElementEnvironment;
 import 'common/tasks.dart' show CompilerTask;
 import 'common/work.dart' show WorkItem;
 import 'constants/values.dart';
-import 'compiler.dart' show Compiler;
 import 'elements/entities.dart';
 import 'elements/types.dart';
-import 'inferrer/types.dart';
 import 'js_backend/annotations.dart';
-import 'js_backend/backend.dart' show CodegenInputs;
-import 'js_backend/enqueuer.dart';
 import 'universe/member_usage.dart';
 import 'universe/resolution_world_builder.dart';
 import 'universe/use.dart'
@@ -32,51 +27,6 @@
 import 'universe/world_impact.dart' show WorldImpact, WorldImpactVisitor;
 import 'util/enumset.dart';
 import 'util/util.dart' show Setlet;
-import 'world.dart' show JClosedWorld;
-
-class EnqueueTask extends CompilerTask {
-  ResolutionEnqueuer resolutionEnqueuerForTesting;
-  bool _resolutionEnqueuerCreated = false;
-  CodegenEnqueuer codegenEnqueuerForTesting;
-  final Compiler compiler;
-
-  @override
-  String get name => 'Enqueue';
-
-  EnqueueTask(Compiler compiler)
-      : this.compiler = compiler,
-        super(compiler.measurer);
-
-  ResolutionEnqueuer createResolutionEnqueuer() {
-    assert(!_resolutionEnqueuerCreated);
-    _resolutionEnqueuerCreated = true;
-    ResolutionEnqueuer enqueuer = compiler.frontendStrategy
-        .createResolutionEnqueuer(this, compiler)
-      ..onEmptyForTesting = compiler.onResolutionQueueEmptyForTesting;
-    if (retainDataForTesting) {
-      resolutionEnqueuerForTesting = enqueuer;
-    }
-    return enqueuer;
-  }
-
-  CodegenEnqueuer createCodegenEnqueuer(
-      JClosedWorld closedWorld,
-      GlobalTypeInferenceResults globalInferenceResults,
-      CodegenInputs codegenInputs,
-      CodegenResults codegenResults) {
-    CodegenEnqueuer enqueuer = compiler.backendStrategy.createCodegenEnqueuer(
-        this,
-        closedWorld,
-        globalInferenceResults,
-        codegenInputs,
-        codegenResults)
-      ..onEmptyForTesting = compiler.onCodegenQueueEmptyForTesting;
-    if (retainDataForTesting) {
-      codegenEnqueuerForTesting = enqueuer;
-    }
-    return enqueuer;
-  }
-}
 
 abstract class EnqueuerListener {
   /// Called to instruct to the backend that [type] has been instantiated.
@@ -147,9 +97,6 @@
 
   WorldImpactVisitor get impactVisitor;
 
-  /// Returns [:true:] if this enqueuer is the resolution enqueuer.
-  bool get isResolutionQueue;
-
   bool queueIsClosed;
 
   bool get queueIsEmpty;
@@ -171,8 +118,6 @@
 
   Iterable<MemberEntity> get processedEntities;
 
-  Iterable<ClassEntity> get processedClasses;
-
   Iterable<ClassEntity> get directlyInstantiatedClasses;
 
   CompilerTask get task;
@@ -254,9 +199,6 @@
     }
   }
 
-  @override
-  Iterable<ClassEntity> get processedClasses => worldBuilder.processedClasses;
-
   void _registerInstantiatedType(InterfaceType type,
       {ConstructorEntity constructor,
       bool nativeUsage = false,
@@ -455,9 +397,6 @@
   Iterable<MemberEntity> get processedEntities => worldBuilder.processedMembers;
 
   @override
-  bool get isResolutionQueue => true;
-
-  @override
   void close() {
     super.close();
     // Null out _workItemBuilder to release memory (it internally holds large
diff --git a/pkg/compiler/lib/src/inferrer/inferrer_engine.dart b/pkg/compiler/lib/src/inferrer/inferrer_engine.dart
index ef3a7d2..c56d855 100644
--- a/pkg/compiler/lib/src/inferrer/inferrer_engine.dart
+++ b/pkg/compiler/lib/src/inferrer/inferrer_engine.dart
@@ -167,7 +167,7 @@
   /// [NativeBehavior].
   TypeInformation typeOfNativeBehavior(NativeBehavior nativeBehavior) {
     if (nativeBehavior == null) return types.dynamicType;
-    List typesReturned = nativeBehavior.typesReturned;
+    List<Object> typesReturned = nativeBehavior.typesReturned;
     if (typesReturned.isEmpty) return types.dynamicType;
     TypeInformation returnType;
     for (var type in typesReturned) {
diff --git a/pkg/compiler/lib/src/ir/impact.dart b/pkg/compiler/lib/src/ir/impact.dart
index 3e7f7fca..c72bbde 100644
--- a/pkg/compiler/lib/src/ir/impact.dart
+++ b/pkg/compiler/lib/src/ir/impact.dart
@@ -684,34 +684,6 @@
   }
 }
 
-/// Visitor that builds an [ImpactData] object for the world impact.
-class ImpactBuilder extends ImpactBuilderBase with ImpactRegistryMixin {
-  @override
-  final bool useAsserts;
-
-  @override
-  final inferEffectivelyFinalVariableTypes;
-
-  ImpactBuilder(
-      ir.StaticTypeContext staticTypeContext,
-      StaticTypeCacheImpl staticTypeCache,
-      ir.ClassHierarchy classHierarchy,
-      VariableScopeModel variableScopeModel,
-      {this.useAsserts = false,
-      this.inferEffectivelyFinalVariableTypes = true})
-      : super(staticTypeContext, staticTypeCache, classHierarchy,
-            variableScopeModel);
-
-  ImpactBuilderData computeImpact(ir.Member node) {
-    if (retainDataForTesting) {
-      typeMapsForTesting = {};
-    }
-    node.accept(this);
-    return ImpactBuilderData(
-        node, impactData, typeMapsForTesting, getStaticTypeCache());
-  }
-}
-
 /// Return the named arguments names as a list of strings.
 List<String> _getNamedArguments(ir.Arguments arguments) =>
     arguments.named.map((n) => n.name).toList();
diff --git a/pkg/compiler/lib/src/ir/impact_data.dart b/pkg/compiler/lib/src/ir/impact_data.dart
index f73b96a8f..34f94bd 100644
--- a/pkg/compiler/lib/src/ir/impact_data.dart
+++ b/pkg/compiler/lib/src/ir/impact_data.dart
@@ -3,7 +3,11 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:kernel/ast.dart' as ir;
+import 'package:kernel/class_hierarchy.dart' as ir;
+import 'package:kernel/type_environment.dart' as ir;
 
+import '../common.dart';
+import '../ir/scope.dart';
 import '../serialization/serialization.dart';
 import '../util/enumset.dart';
 import 'constants.dart';
@@ -11,9 +15,34 @@
 import 'runtime_type_analysis.dart';
 import 'static_type.dart';
 
-/// [ImpactRegistry] that stores registered impact in an [ImpactData] object.
-abstract class ImpactRegistryMixin implements ImpactRegistry {
-  final ImpactDataImpl _data = ImpactDataImpl();
+/// Visitor that builds an [ImpactData] object for the world impact.
+class ImpactBuilder extends ImpactBuilderBase {
+  final ImpactData _data = ImpactData();
+
+  @override
+  final bool useAsserts;
+
+  @override
+  final inferEffectivelyFinalVariableTypes;
+
+  ImpactBuilder(
+      ir.StaticTypeContext staticTypeContext,
+      StaticTypeCacheImpl staticTypeCache,
+      ir.ClassHierarchy classHierarchy,
+      VariableScopeModel variableScopeModel,
+      {this.useAsserts = false,
+      this.inferEffectivelyFinalVariableTypes = true})
+      : super(staticTypeContext, staticTypeCache, classHierarchy,
+            variableScopeModel);
+
+  ImpactBuilderData computeImpact(ir.Member node) {
+    if (retainDataForTesting) {
+      typeMapsForTesting = {};
+    }
+    node.accept(this);
+    return ImpactBuilderData(
+        node, impactData, typeMapsForTesting, getStaticTypeCache());
+  }
 
   ImpactData get impactData => _data;
 
@@ -451,17 +480,7 @@
 }
 
 /// Data object that contains the world impact data derived purely from kernel.
-abstract class ImpactData {
-  factory ImpactData.fromDataSource(DataSource source) =
-      ImpactDataImpl.fromDataSource;
-
-  void toDataSink(DataSink sink);
-
-  /// Registers the impact data with [registry].
-  void apply(ImpactRegistry registry);
-}
-
-class ImpactDataImpl implements ImpactData {
+class ImpactData {
   static const String tag = 'ImpactData';
 
   List<_SuperInitializer> _superInitializers;
@@ -509,9 +528,9 @@
   List<ir.StaticInvocation> _staticInvocationNodes;
   List<ir.ConstructorInvocation> _constConstructorInvocationNodes;
 
-  ImpactDataImpl();
+  ImpactData();
 
-  ImpactDataImpl.fromDataSource(DataSource source) {
+  ImpactData.fromDataSource(DataSource source) {
     source.begin(tag);
     _superInitializers = source.readList(
         () => _SuperInitializer.fromDataSource(source),
@@ -609,7 +628,6 @@
     source.end(tag);
   }
 
-  @override
   void toDataSink(DataSink sink) {
     sink.begin(tag);
 
@@ -693,7 +711,7 @@
     sink.end(tag);
   }
 
-  @override
+  /// Registers the impact data with [registry].
   void apply(ImpactRegistry registry) {
     if (_superInitializers != null) {
       for (_SuperInitializer data in _superInitializers) {
diff --git a/pkg/compiler/lib/src/ir/modular.dart b/pkg/compiler/lib/src/ir/modular.dart
index 31e2752..c143853 100644
--- a/pkg/compiler/lib/src/ir/modular.dart
+++ b/pkg/compiler/lib/src/ir/modular.dart
@@ -14,6 +14,7 @@
 import '../diagnostics/source_span.dart';
 import '../kernel/element_map.dart';
 import '../environment.dart';
+import '../ir/impact_data.dart';
 import '../ir/static_type.dart';
 import '../js_backend/annotations.dart';
 import '../options.dart';
diff --git a/pkg/compiler/lib/src/ir/scope_visitor.dart b/pkg/compiler/lib/src/ir/scope_visitor.dart
index 4e0fc1e..3abbbfd 100644
--- a/pkg/compiler/lib/src/ir/scope_visitor.dart
+++ b/pkg/compiler/lib/src/ir/scope_visitor.dart
@@ -864,9 +864,13 @@
     complexity = complexity.combine(visitExpressions(node.expressions));
     if (node.isConst) {
       return const EvaluationComplexity.constant();
-    } else {
+    }
+    if (complexity.isLazy) return complexity;
+    if (node.expressions.every(_isWellBehavedEagerHashKey)) {
+      // Includes empty set literals.
       return complexity.makeEager();
     }
+    return const EvaluationComplexity.lazy();
   }
 
   @override
@@ -878,9 +882,33 @@
     complexity = complexity.combine(visitNodes(node.entries));
     if (node.isConst) {
       return const EvaluationComplexity.constant();
-    } else {
+    }
+    if (node.entries.length > 10) return const EvaluationComplexity.lazy();
+    if (complexity.isLazy) return complexity;
+    if (node.entries
+        .map((entry) => entry.key)
+        .every(_isWellBehavedEagerHashKey)) {
+      // Includes empty map literals.
       return complexity.makeEager();
     }
+    return const EvaluationComplexity.lazy();
+  }
+
+  bool _isWellBehavedEagerHashKey(ir.Expression key) {
+    // Well-behaved eager keys for LinkedHashMap and LinkedHashSet must not
+    // indirectly use any lazy-initialized variables.
+    //
+    // TODO(45681): Improve the analysis. (1) Use static type of the [key]
+    // expression. (2) Use information about the class heirarchy and overloading
+    // of `get:hashCode` to detect safe implementations. This will pick up a lot
+    // of enum and enum-like classes.
+    if (key is ir.ConstantExpression) {
+      if (key.constant is ir.StringConstant) return true;
+      if (key.constant is ir.IntConstant) return true;
+      if (key.constant is ir.DoubleConstant) return true;
+      if (key.constant is ir.StaticTearOffConstant) return true;
+    }
+    return false;
   }
 
   @override
diff --git a/pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart b/pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart
index fd88ef8..965da61 100644
--- a/pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart
+++ b/pkg/compiler/lib/src/js_backend/custom_elements_analysis.dart
@@ -9,8 +9,7 @@
 import '../elements/types.dart';
 import '../universe/call_structure.dart';
 import '../universe/use.dart' show ConstantUse, StaticUse;
-import '../universe/world_impact.dart'
-    show WorldImpact, StagedWorldImpactBuilder;
+import '../universe/world_impact.dart' show WorldImpact, WorldImpactBuilderImpl;
 import 'backend_usage.dart' show BackendUsageBuilder;
 import 'native_data.dart';
 
@@ -154,8 +153,6 @@
 
   final bool forResolution;
 
-  final StagedWorldImpactBuilder impactBuilder = StagedWorldImpactBuilder();
-
   // Classes that are candidates for needing constructors.  Classes are moved to
   // [activeClasses] when we know they need constructors.
   final Set<ClassEntity> instantiatedClasses = {};
@@ -180,6 +177,7 @@
 
   WorldImpact flush() {
     if (!demanded) return const WorldImpact();
+    final impactBuilder = WorldImpactBuilderImpl();
     var newActiveClasses = Set<ClassEntity>();
     for (ClassEntity cls in instantiatedClasses) {
       bool isNative = _nativeData.isNativeClass(cls);
@@ -208,7 +206,7 @@
     }
     activeClasses.addAll(newActiveClasses);
     instantiatedClasses.removeAll(newActiveClasses);
-    return impactBuilder.flush();
+    return impactBuilder;
   }
 
   TypeConstantValue _makeTypeConstant(ClassEntity cls) {
diff --git a/pkg/compiler/lib/src/js_backend/enqueuer.dart b/pkg/compiler/lib/src/js_backend/enqueuer.dart
index a80f764..5fd435b 100644
--- a/pkg/compiler/lib/src/js_backend/enqueuer.dart
+++ b/pkg/compiler/lib/src/js_backend/enqueuer.dart
@@ -76,10 +76,6 @@
     }
   }
 
-  /// Returns [:true:] if this enqueuer is the resolution enqueuer.
-  @override
-  bool get isResolutionQueue => false;
-
   /// Create a [WorkItem] for [entity] and add it to the work list if it has not
   /// already been processed.
   void _addToWorkList(MemberEntity entity) {
@@ -301,8 +297,4 @@
 
   @override
   Iterable<MemberEntity> get processedEntities => _processedEntities;
-
-  @override
-  Iterable<ClassEntity> get processedClasses =>
-      worldBuilder.instantiatedClasses;
 }
diff --git a/pkg/compiler/lib/src/native/behavior.dart b/pkg/compiler/lib/src/native/behavior.dart
index 94d2312..f8f41cb 100644
--- a/pkg/compiler/lib/src/native/behavior.dart
+++ b/pkg/compiler/lib/src/native/behavior.dart
@@ -15,7 +15,7 @@
 import '../universe/side_effects.dart' show SideEffects;
 import 'js.dart';
 
-typedef TypeLookup = dynamic /*DartType|SpecialType*/
+typedef TypeLookup = Object /*DartType|SpecialType*/
     Function(String typeString, {bool required});
 
 /// This class is a temporary work-around until we get a more powerful DartType.
@@ -164,11 +164,11 @@
 
   /// [DartType]s or [SpecialType]s returned or yielded by the native
   /// element.
-  final List typesReturned = [];
+  final List<Object> typesReturned = [];
 
   /// [DartType]s or [SpecialType]s instantiated by the native
   /// element.
-  final List typesInstantiated = [];
+  final List<Object> typesInstantiated = [];
 
   String codeTemplateText;
   // If this behavior is for a JS expression, [codeTemplate] contains the
@@ -198,8 +198,8 @@
   factory NativeBehavior.readFromDataSource(DataSource source) {
     source.begin(tag);
 
-    List readTypes() {
-      List types = [];
+    List<Object> readTypes() {
+      List<Object> types = [];
       types.addAll(source.readDartTypes());
       int specialCount = source.readInt();
       for (int i = 0; i < specialCount; i++) {
@@ -209,8 +209,8 @@
       return types;
     }
 
-    List typesReturned = readTypes();
-    List typesInstantiated = readTypes();
+    List<Object> typesReturned = readTypes();
+    List<Object> typesInstantiated = readTypes();
     String codeTemplateText = source.readStringOrNull();
     SideEffects sideEffects = SideEffects.readFromDataSource(source);
     int throwBehavior = source.readInt();
@@ -236,7 +236,7 @@
   void writeToDataSink(DataSink sink) {
     sink.begin(tag);
 
-    void writeTypes(List types) {
+    void writeTypes(List<Object> types) {
       List<DartType> dartTypes = [];
       List<SpecialType> specialTypes = [];
       for (var type in types) {
@@ -373,8 +373,8 @@
       void setIsAllocation(bool isAllocation),
       void setUseGvn(bool useGvn),
       TypeLookup lookupType,
-      List typesReturned,
-      List typesInstantiated,
+      List<Object> typesReturned,
+      List<Object> typesInstantiated,
       objectType,
       nullType}) {
     bool seenError = false;
@@ -731,7 +731,7 @@
     return dartTypes.dynamicType();
   }
 
-  dynamic _convertNativeBehaviorType(JsToFrontendMap map, dynamic type) {
+  Object _convertNativeBehaviorType(JsToFrontendMap map, Object type) {
     if (type is DartType) {
       // TODO(johnniwinther): Avoid free variables in types. If the type
       // pulled from a generic function type it might contain a function
@@ -744,10 +744,10 @@
 
   NativeBehavior convert(JsToFrontendMap map) {
     final newBehavior = NativeBehavior();
-    for (dynamic type in typesReturned) {
+    for (Object type in typesReturned) {
       newBehavior.typesReturned.add(_convertNativeBehaviorType(map, type));
     }
-    for (dynamic type in typesInstantiated) {
+    for (Object type in typesInstantiated) {
       newBehavior.typesInstantiated.add(_convertNativeBehaviorType(map, type));
     }
     newBehavior.codeTemplateText = codeTemplateText;
@@ -777,8 +777,8 @@
       Iterable<String> returnsAnnotations, TypeLookup lookupType) {
     if (createsAnnotations.isEmpty && returnsAnnotations.isEmpty) return;
 
-    List creates = _collect(createsAnnotations, lookupType);
-    List returns = _collect(returnsAnnotations, lookupType);
+    List<Object> creates = _collect(createsAnnotations, lookupType);
+    List<Object> returns = _collect(returnsAnnotations, lookupType);
 
     if (creates != null) {
       _behavior.typesInstantiated
diff --git a/pkg/compiler/lib/src/ssa/types.dart b/pkg/compiler/lib/src/ssa/types.dart
index f72163a..64e4c28 100644
--- a/pkg/compiler/lib/src/ssa/types.dart
+++ b/pkg/compiler/lib/src/ssa/types.dart
@@ -46,7 +46,7 @@
 
     // [type] is either an instance of [DartType] or special objects
     // like [native.SpecialType.JsObject].
-    AbstractValue fromNativeType(dynamic type) {
+    AbstractValue fromNativeType(Object type) {
       if (type == SpecialType.JsObject) {
         return abstractValueDomain
             .createNonNullExact(commonElements.objectClass);
@@ -56,8 +56,10 @@
         return abstractValueDomain.dynamicType;
       } else if (type == commonElements.nullType) {
         return abstractValueDomain.nullType;
-      } else {
+      } else if (type is InterfaceType) {
         return abstractValueDomain.createNonNullSubtype(type.element);
+      } else {
+        throw 'Unexpected type $type';
       }
     }
 
diff --git a/pkg/compiler/lib/src/ssa/value_set.dart b/pkg/compiler/lib/src/ssa/value_set.dart
index 9382934..db348c4 100644
--- a/pkg/compiler/lib/src/ssa/value_set.dart
+++ b/pkg/compiler/lib/src/ssa/value_set.dart
@@ -85,26 +85,33 @@
   }
 
   List<HInstruction> toList() {
-    return copyTo(<HInstruction>[], table, collisions);
+    List<HInstruction> result = [];
+    // Copy elements from the hash table.
+    for (final instruction in table) {
+      if (instruction != null) result.add(instruction);
+    }
+    // Copy elements from the collision list.
+    for (var current = collisions; current != null; current = current.next) {
+      result.add(current.value);
+    }
+    return result;
   }
 
   // Copy the instructions in value set defined by [table] and
   // [collisions] into [other] and returns [other]. The copy is done
   // by iterating through the hash table and the collisions list and
   // calling [:other.add:].
-  static copyTo(var other, List<HInstruction> table, ValueSetNode collisions) {
+  static ValueSet copyTo(
+      ValueSet other, List<HInstruction> table, ValueSetNode collisions) {
     // Copy elements from the hash table.
-    for (int index = 0, length = table.length; index < length; index++) {
-      HInstruction instruction = table[index];
+    for (final instruction in table) {
       if (instruction != null) other.add(instruction);
     }
     // Copy elements from the collision list.
-    ValueSetNode current = collisions;
-    while (current != null) {
+    for (var current = collisions; current != null; current = current.next) {
       // TODO(kasperl): Maybe find a way of reusing the hash code
       // rather than recomputing it every time.
       other.add(current.value);
-      current = current.next;
     }
     return other;
   }
diff --git a/pkg/compiler/lib/src/ssa/variable_allocator.dart b/pkg/compiler/lib/src/ssa/variable_allocator.dart
index 2bf062d..6fa6dbd 100644
--- a/pkg/compiler/lib/src/ssa/variable_allocator.dart
+++ b/pkg/compiler/lib/src/ssa/variable_allocator.dart
@@ -586,7 +586,7 @@
 
   /// Returns whether [instruction] needs a name. Instructions that
   /// have no users or that are generated at use site do not need a name.
-  bool needsName(instruction) {
+  bool needsName(HInstruction instruction) {
     if (instruction is HThis) return false;
     if (instruction is HParameterValue) return true;
     if (instruction.usedBy.isEmpty) return false;
diff --git a/pkg/compiler/lib/src/universe/world_impact.dart b/pkg/compiler/lib/src/universe/world_impact.dart
index f23105a..1008089 100644
--- a/pkg/compiler/lib/src/universe/world_impact.dart
+++ b/pkg/compiler/lib/src/universe/world_impact.dart
@@ -159,63 +159,6 @@
   }
 }
 
-/// [WorldImpactBuilder] that can create and collect a sequence of
-/// [WorldImpact]s.
-class StagedWorldImpactBuilder implements WorldImpactBuilder {
-  final bool collectImpacts;
-  WorldImpactBuilderImpl _currentBuilder;
-  final List<WorldImpactBuilderImpl> _builders = [];
-
-  StagedWorldImpactBuilder({this.collectImpacts = false});
-
-  void _ensureBuilder() {
-    if (_currentBuilder == null) {
-      _currentBuilder = WorldImpactBuilderImpl();
-      if (collectImpacts) {
-        _builders.add(_currentBuilder);
-      }
-    }
-  }
-
-  @override
-  void registerTypeUse(TypeUse typeUse) {
-    _ensureBuilder();
-    _currentBuilder.registerTypeUse(typeUse);
-  }
-
-  @override
-  void registerDynamicUse(DynamicUse dynamicUse) {
-    _ensureBuilder();
-    _currentBuilder.registerDynamicUse(dynamicUse);
-  }
-
-  @override
-  void registerStaticUse(StaticUse staticUse) {
-    _ensureBuilder();
-    _currentBuilder.registerStaticUse(staticUse);
-  }
-
-  @override
-  void registerConstantUse(ConstantUse constantUse) {
-    _ensureBuilder();
-    _currentBuilder.registerConstantUse(constantUse);
-  }
-
-  /// Returns the [WorldImpact] built so far with this builder. The builder
-  /// is reset, and if [collectImpacts] is `true` the impact is cached for
-  /// [worldImpacts].
-  WorldImpact flush() {
-    if (_currentBuilder == null) return const WorldImpact();
-    WorldImpact worldImpact = _currentBuilder;
-    _currentBuilder = null;
-    return worldImpact;
-  }
-
-  /// If [collectImpacts] is `true` this returns all [WorldImpact]s built with
-  /// this builder.
-  Iterable<WorldImpact> get worldImpacts => _builders;
-}
-
 /// Mutable implementation of [WorldImpact] used to transform
 /// [ResolutionImpact] or [CodegenImpact] to [WorldImpact].
 class TransformedWorldImpact implements WorldImpact, WorldImpactBuilder {
diff --git a/pkg/compiler/test/analyses/dart2js_allowed.json b/pkg/compiler/test/analyses/dart2js_allowed.json
index ea447f6..118826f 100644
--- a/pkg/compiler/test/analyses/dart2js_allowed.json
+++ b/pkg/compiler/test/analyses/dart2js_allowed.json
@@ -78,16 +78,6 @@
   "pkg/dart2js_info/lib/binary_serialization.dart": {
     "Dynamic invocation of 'cast'.": 1
   },
-  "pkg/compiler/lib/src/ssa/types.dart": {
-    "Dynamic access of 'element'.": 1
-  },
-  "pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart": {
-    "Dynamic invocation of '[]='.": 1,
-    "Dynamic invocation of 'add'.": 1
-  },
-  "pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_merger.dart": {
-    "Dynamic invocation of '[]='.": 1
-  },
   "pkg/js_ast/lib/src/builder.dart": {
     "Dynamic invocation of 'call'.": 2
   },
@@ -100,6 +90,13 @@
     "Dynamic invocation of '[]'.": 9,
     "Dynamic invocation of 'toStatement'.": 3
   },
+  "pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart": {
+    "Dynamic invocation of '[]='.": 1,
+    "Dynamic invocation of 'add'.": 1
+  },
+  "pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_merger.dart": {
+    "Dynamic invocation of '[]='.": 1
+  },
   "pkg/dart2js_info/lib/src/util.dart": {
     "Dynamic access of 'name'.": 1,
     "Dynamic invocation of '-'.": 1
@@ -122,20 +119,11 @@
     "Dynamic access of 'superclass'.": 1,
     "Dynamic access of 'needsTearOff'.": 1
   },
-  "pkg/compiler/lib/src/ssa/variable_allocator.dart": {
-    "Dynamic access of 'usedBy'.": 1,
-    "Dynamic access of 'isEmpty'.": 1,
-    "Dynamic invocation of 'nonCheck'.": 1,
-    "Dynamic invocation of 'isCodeMotionInvariant'.": 1
-  },
   "pkg/compiler/lib/src/ssa/value_range_analyzer.dart": {
     "Dynamic access of 'isZero'.": 2,
     "Dynamic invocation of '+'.": 2,
     "Dynamic invocation of 'unary-'.": 1,
     "Dynamic invocation of 'min'.": 1,
     "Dynamic invocation of 'max'.": 1
-  },
-  "pkg/compiler/lib/src/ssa/value_set.dart": {
-    "Dynamic invocation of 'add'.": 2
   }
-}
\ No newline at end of file
+}
diff --git a/pkg/compiler/test/model/enqueuer_test.dart b/pkg/compiler/test/model/enqueuer_test.dart
index 87dcf5f..d6a2ac6 100644
--- a/pkg/compiler/test/model/enqueuer_test.dart
+++ b/pkg/compiler/test/model/enqueuer_test.dart
@@ -164,7 +164,7 @@
   void checkInvariant(
       Enqueuer enqueuer, ElementEnvironment elementEnvironment) {
     for (MemberEntity member
-        in compiler.enqueuer.resolutionEnqueuerForTesting.processedEntities) {
+        in compiler.resolutionEnqueuerForTesting.processedEntities) {
       Expect.isTrue(
           member == elementEnvironment.mainFunction ||
               member.library != elementEnvironment.mainLibrary,
@@ -247,7 +247,7 @@
   }
 
   compiler.onResolutionQueueEmptyForTesting = () {
-    Enqueuer enqueuer = compiler.enqueuer.resolutionEnqueuerForTesting;
+    Enqueuer enqueuer = compiler.resolutionEnqueuerForTesting;
     ElementEnvironment elementEnvironment =
         compiler.frontendStrategy.elementEnvironment;
     checkInvariant(enqueuer, elementEnvironment);
@@ -262,7 +262,7 @@
     }
   };
   compiler.onCodegenQueueEmptyForTesting = () {
-    Enqueuer enqueuer = compiler.enqueuer.codegenEnqueuerForTesting;
+    Enqueuer enqueuer = compiler.codegenEnqueuerForTesting;
     JClosedWorld closedWorld = compiler.backendClosedWorldForTesting;
     ElementEnvironment elementEnvironment =
         compiler.backendClosedWorldForTesting.elementEnvironment;
@@ -280,12 +280,12 @@
   await compiler.run();
 
   checkLiveMembers(
-      compiler.enqueuer.resolutionEnqueuerForTesting,
+      compiler.resolutionEnqueuerForTesting,
       compiler.frontendStrategy.elementEnvironment,
       test.expectedLiveResolutionMap);
 
   checkLiveMembers(
-      compiler.enqueuer.codegenEnqueuerForTesting,
+      compiler.codegenEnqueuerForTesting,
       compiler.backendClosedWorldForTesting.elementEnvironment,
       test.expectedLiveCodegenMap);
 }
diff --git a/pkg/dartdev/lib/src/commands/create.dart b/pkg/dartdev/lib/src/commands/create.dart
index 8d20bee..959c7bf 100644
--- a/pkg/dartdev/lib/src/commands/create.dart
+++ b/pkg/dartdev/lib/src/commands/create.dart
@@ -5,7 +5,6 @@
 import 'dart:async';
 import 'dart:convert';
 import 'dart:io' as io;
-import 'dart:math' as math;
 
 import 'package:path/path.dart' as p;
 
@@ -18,16 +17,26 @@
 class CreateCommand extends DartdevCommand {
   static const String cmdName = 'create';
 
-  static String defaultTemplateId = 'console-simple';
+  static const String defaultTemplateId = 'console';
 
-  static final List<String> legalTemplateIds =
-      generators.map((generator) => generator.id).toList();
+  static List<String> legalTemplateIds({bool includeDeprecated = false}) => [
+        for (var g in generators) ...[
+          if (includeDeprecated || !g.deprecated) g.id,
+          if (includeDeprecated && g.alternateId != null) g.alternateId!
+        ]
+      ];
+
+  static final Map<String, String> templateHelp = {
+    for (var g in generators)
+      if (!g.deprecated) g.id: g.description
+  };
 
   CreateCommand({bool verbose = false})
       : super(cmdName, 'Create a new Dart project.', verbose) {
     argParser.addOption(
       'template',
-      allowed: legalTemplateIds,
+      allowed: legalTemplateIds(includeDeprecated: true),
+      allowedHelp: templateHelp,
       help: 'The project template to use.',
       defaultsTo: defaultTemplateId,
       abbr: 't',
@@ -145,18 +154,9 @@
     return 0;
   }
 
-  @override
-  String get usageFooter {
-    int width = legalTemplateIds.map((s) => s.length).reduce(math.max);
-    String desc = generators.map((g) {
-      String suffix = g.id == defaultTemplateId ? ' (default)' : '';
-      return '  ${g.id.padLeft(width)}: ${g.description}$suffix';
-    }).join('\n');
-    return '\nAvailable templates:\n$desc';
-  }
-
   String _availableTemplatesJson() {
-    var items = generators.map((Generator generator) {
+    var items =
+        generators.where((g) => !g.deprecated).map((Generator generator) {
       var m = {
         'name': generator.id,
         'label': generator.label,
diff --git a/pkg/dartdev/lib/src/templates.dart b/pkg/dartdev/lib/src/templates.dart
index ee1938a..2df9ad1 100644
--- a/pkg/dartdev/lib/src/templates.dart
+++ b/pkg/dartdev/lib/src/templates.dart
@@ -8,25 +8,30 @@
 import 'package:meta/meta.dart';
 import 'package:path/path.dart' as p;
 
-import 'templates/console_full.dart';
+import 'templates/console.dart';
 import 'templates/console_simple.dart';
-import 'templates/package_simple.dart';
+import 'templates/package.dart';
 import 'templates/server_shelf.dart';
-import 'templates/web_simple.dart';
+import 'templates/web.dart';
 
 final _substituteRegExp = RegExp(r'__([a-zA-Z]+)__');
 final _nonValidSubstituteRegExp = RegExp(r'[^a-zA-Z]');
 
 final List<Generator> generators = [
-  ConsoleSimpleGenerator(),
-  ConsoleFullGenerator(),
-  PackageSimpleGenerator(),
+  ConsoleGenerator(),
+  PackageGenerator(),
   ServerShelfGenerator(),
-  WebSimpleGenerator(),
+  WebGenerator(),
+  // Deprecated generators:
+  ConsoleSimpleGenerator(),
 ];
 
-Generator? getGenerator(String id) =>
-    generators.firstWhereOrNull((g) => g.id == id);
+Generator? getGenerator(String id) {
+  Generator? result;
+  result = generators.firstWhereOrNull((g) => g.id == id);
+  result ??= generators.firstWhereOrNull((g) => g.alternateId == id);
+  return result;
+}
 
 /// An abstract class which both defines a template generator and can generate a
 /// user project based on this template.
@@ -34,7 +39,9 @@
   final String id;
   final String label;
   final String description;
+  final String? alternateId;
   final List<String> categories;
+  final bool deprecated;
 
   final List<TemplateFile> files = [];
   TemplateFile? _entrypoint;
@@ -49,6 +56,8 @@
     this.label,
     this.description, {
     this.categories = const [],
+    this.alternateId,
+    this.deprecated = false,
   });
 
   String get lowerCaseId => _lowerCaseId ??= id.toLowerCase();
@@ -134,8 +143,17 @@
     String id,
     String label,
     String description, {
+    String? alternateId,
     List<String> categories = const [],
-  }) : super(id, label, description, categories: categories);
+    bool deprecated = false,
+  }) : super(
+          id,
+          label,
+          description,
+          categories: categories,
+          alternateId: alternateId,
+          deprecated: deprecated,
+        );
 }
 
 /// A target for a [Generator]. This class knows how to create files given a
diff --git a/pkg/dartdev/lib/src/templates/console_full.dart b/pkg/dartdev/lib/src/templates/console.dart
similarity index 86%
rename from pkg/dartdev/lib/src/templates/console_full.dart
rename to pkg/dartdev/lib/src/templates/console.dart
index 06583d9..8dae875 100644
--- a/pkg/dartdev/lib/src/templates/console_full.dart
+++ b/pkg/dartdev/lib/src/templates/console.dart
@@ -6,11 +6,15 @@
 import 'common.dart' as common;
 
 /// A generator for a hello world command-line application.
-class ConsoleFullGenerator extends DefaultGenerator {
-  ConsoleFullGenerator()
-      : super('console-full', 'Console Application',
-            'A command-line application sample.',
-            categories: const ['dart', 'console']) {
+class ConsoleGenerator extends DefaultGenerator {
+  ConsoleGenerator()
+      : super(
+          'console',
+          'Console Application',
+          'A command-line application.',
+          alternateId: 'console-full',
+          categories: const ['dart', 'console'],
+        ) {
     addFile('.gitignore', common.gitignore);
     addFile('analysis_options.yaml', common.analysisOptions);
     addFile('CHANGELOG.md', common.changelog);
diff --git a/pkg/dartdev/lib/src/templates/console_simple.dart b/pkg/dartdev/lib/src/templates/console_simple.dart
index 0234d18..8ab68be 100644
--- a/pkg/dartdev/lib/src/templates/console_simple.dart
+++ b/pkg/dartdev/lib/src/templates/console_simple.dart
@@ -8,9 +8,13 @@
 /// A generator for a simple command-line application.
 class ConsoleSimpleGenerator extends DefaultGenerator {
   ConsoleSimpleGenerator()
-      : super('console-simple', 'Simple Console Application',
-            'A simple command-line application.',
-            categories: const ['dart', 'console']) {
+      : super(
+          'console-simple',
+          'Simple Console Application',
+          'A simple command-line application.',
+          deprecated: true,
+          categories: const ['dart', 'console'],
+        ) {
     addFile('.gitignore', common.gitignore);
     addFile('analysis_options.yaml', common.analysisOptions);
     addFile('CHANGELOG.md', common.changelog);
diff --git a/pkg/dartdev/lib/src/templates/package_simple.dart b/pkg/dartdev/lib/src/templates/package.dart
similarity index 92%
rename from pkg/dartdev/lib/src/templates/package_simple.dart
rename to pkg/dartdev/lib/src/templates/package.dart
index 6bdbd57..e92049d 100644
--- a/pkg/dartdev/lib/src/templates/package_simple.dart
+++ b/pkg/dartdev/lib/src/templates/package.dart
@@ -6,11 +6,15 @@
 import 'common.dart' as common;
 
 /// A generator for a simple command-line application.
-class PackageSimpleGenerator extends DefaultGenerator {
-  PackageSimpleGenerator()
-      : super('package-simple', 'Dart Package',
-            'A starting point for Dart libraries or applications.',
-            categories: const ['dart']) {
+class PackageGenerator extends DefaultGenerator {
+  PackageGenerator()
+      : super(
+          'package',
+          'Dart Package',
+          'A package containing shared Dart libraries.',
+          categories: const ['dart'],
+          alternateId: 'package-simple',
+        ) {
     addFile('.gitignore', _gitignore);
     addFile('analysis_options.yaml', common.analysisOptions);
     addFile('CHANGELOG.md', common.changelog);
diff --git a/pkg/dartdev/lib/src/templates/server_shelf.dart b/pkg/dartdev/lib/src/templates/server_shelf.dart
index 12a2e3b..cd23807 100644
--- a/pkg/dartdev/lib/src/templates/server_shelf.dart
+++ b/pkg/dartdev/lib/src/templates/server_shelf.dart
@@ -9,8 +9,11 @@
 class ServerShelfGenerator extends DefaultGenerator {
   ServerShelfGenerator()
       : super(
-            'server-shelf', 'Server app', 'A server app using `package:shelf`',
-            categories: const ['dart', 'server']) {
+          'server-shelf',
+          'Server app',
+          'A server app using `package:shelf`',
+          categories: const ['dart', 'server'],
+        ) {
     addFile('.gitignore', common.gitignore);
     addFile('analysis_options.yaml', common.analysisOptions);
     addFile('CHANGELOG.md', common.changelog);
diff --git a/pkg/dartdev/lib/src/templates/web_simple.dart b/pkg/dartdev/lib/src/templates/web.dart
similarity index 88%
rename from pkg/dartdev/lib/src/templates/web_simple.dart
rename to pkg/dartdev/lib/src/templates/web.dart
index 04e8776..19868273 100644
--- a/pkg/dartdev/lib/src/templates/web_simple.dart
+++ b/pkg/dartdev/lib/src/templates/web.dart
@@ -8,11 +8,15 @@
 import 'common.dart' as common;
 
 /// A generator for a uber-simple web application.
-class WebSimpleGenerator extends DefaultGenerator {
-  WebSimpleGenerator()
-      : super('web-simple', 'Bare-bones Web App',
-            'A web app that uses only core Dart libraries.',
-            categories: const ['dart', 'web']) {
+class WebGenerator extends DefaultGenerator {
+  WebGenerator()
+      : super(
+          'web',
+          'Bare-bones Web App',
+          'A web app that uses only core Dart libraries.',
+          alternateId: 'web-simple',
+          categories: const ['dart', 'web'],
+        ) {
     addFile('.gitignore', common.gitignore);
     addFile('analysis_options.yaml', common.analysisOptions);
     addFile('CHANGELOG.md', common.changelog);
diff --git a/pkg/dartdev/test/commands/create_integration_test.dart b/pkg/dartdev/test/commands/create_integration_test.dart
index e73a16d..92e981a 100644
--- a/pkg/dartdev/test/commands/create_integration_test.dart
+++ b/pkg/dartdev/test/commands/create_integration_test.dart
@@ -21,7 +21,8 @@
   tearDown(() async => await p?.dispose());
 
   // Create tests for each template.
-  for (String templateId in CreateCommand.legalTemplateIds) {
+  for (String templateId
+      in CreateCommand.legalTemplateIds(includeDeprecated: true)) {
     test(templateId, () async {
       p = project();
 
diff --git a/pkg/dartdev/test/commands/create_test.dart b/pkg/dartdev/test/commands/create_test.dart
index 872309e..7757636 100644
--- a/pkg/dartdev/test/commands/create_test.dart
+++ b/pkg/dartdev/test/commands/create_test.dart
@@ -54,13 +54,21 @@
   });
 
   test('default template exists', () async {
-    expect(CreateCommand.legalTemplateIds,
+    expect(CreateCommand.legalTemplateIds(),
         contains(CreateCommand.defaultTemplateId));
   });
 
-  test('all templates exist', () async {
-    for (String templateId in CreateCommand.legalTemplateIds) {
-      expect(CreateCommand.legalTemplateIds, contains(templateId));
+  test('no templates IDs overlap', () async {
+    final ids = <String>{};
+
+    for (final g in templates.generators) {
+      expect(ids.contains(g.id), false);
+      ids.add(g.id);
+
+      if (g.alternateId != null) {
+        expect(ids.contains(g.alternateId), false);
+        ids.add(g.alternateId!);
+      }
     }
   });
 
@@ -72,7 +80,6 @@
 
     String output = result.stdout.toString();
     var parsedResult = jsonDecode(output);
-    expect(parsedResult, hasLength(CreateCommand.legalTemplateIds.length));
     expect(parsedResult[0]['name'], isNotNull);
     expect(parsedResult[0]['label'], isNotNull);
     expect(parsedResult[0]['description'], isNotNull);
@@ -81,9 +88,7 @@
   test('no directory given', () async {
     p = project();
 
-    ProcessResult result = await p!.run([
-      'create',
-    ]);
+    ProcessResult result = await p!.run(['create']);
     expect(result.exitCode, 1);
   });
 
@@ -109,7 +114,8 @@
 
   test('project with normalized package name', () async {
     p = project();
-    final result = await p!.run(['create', 'requires-normalization']);
+    final result =
+        await p!.run(['create', '--no-pub', 'requires-normalization']);
     expect(result.stderr, isEmpty);
     expect(
         result.stdout,
@@ -140,7 +146,8 @@
   });
 
   // Create tests for each template.
-  for (String templateId in CreateCommand.legalTemplateIds) {
+  for (String templateId
+      in CreateCommand.legalTemplateIds(includeDeprecated: true)) {
     test(templateId, () async {
       p = project();
       const projectName = 'template_project';
diff --git a/pkg/dartdev/test/commands/doc_test.dart b/pkg/dartdev/test/commands/doc_test.dart
index c0550b8..c597d50 100644
--- a/pkg/dartdev/test/commands/doc_test.dart
+++ b/pkg/dartdev/test/commands/doc_test.dart
@@ -111,7 +111,7 @@
     final p = project(mainSrc: 'void main() { print("Hello, World"); }');
     p.file('lib/foo.dart', source);
     final result = await p.run(['doc', '--validate-links', p.dirPath]);
-    // TODO (mit@): Update this test to actually test for the
+    // TODO (mit): Update this test to actually test for the
     // --validate-links flag.
     expect(result.stdout, contains('Documenting dartdev_temp'));
   });
diff --git a/pkg/dds/lib/devtools_server.dart b/pkg/dds/lib/devtools_server.dart
index 0a267d6..299044c 100644
--- a/pkg/dds/lib/devtools_server.dart
+++ b/pkg/dds/lib/devtools_server.dart
@@ -489,11 +489,12 @@
   }
 
   Future<Map<String, dynamic>> launchDevTools(
-      Map<String, dynamic> params,
-      Uri vmServiceUri,
-      String devToolsUrl,
-      bool headlessMode,
-      bool machineMode) async {
+    Map<String, dynamic> params,
+    Uri vmServiceUri,
+    String devToolsUrl,
+    bool headlessMode,
+    bool machineMode,
+  ) async {
     // First see if we have an existing DevTools client open that we can
     // reuse.
     final canReuse =
@@ -508,10 +509,11 @@
           shouldNotify,
         )) {
       _emitLaunchEvent(
-          reused: true,
-          notified: shouldNotify,
-          pid: null,
-          machineMode: machineMode);
+        reused: true,
+        notified: shouldNotify,
+        pid: null,
+        machineMode: machineMode,
+      );
       return {
         'reused': true,
         'notified': shouldNotify,
@@ -582,7 +584,7 @@
 
   bool _tryReuseExistingDevToolsInstance(
     Uri vmServiceUri,
-    String page,
+    String? page,
     bool notifyUser,
   ) {
     // First try to find a client that's already connected to this VM service,
@@ -591,7 +593,9 @@
         clientManager.findExistingConnectedReusableClient(vmServiceUri);
     if (existingClient != null) {
       try {
-        existingClient.showPage(page);
+        if (page != null) {
+          existingClient.showPage(page);
+        }
         if (notifyUser) {
           existingClient.notify();
         }
@@ -617,7 +621,7 @@
 
   String _buildUriToLaunch(
     Map<String, dynamic> uriParams,
-    page,
+    String? page,
     Uri devToolsUri,
   ) {
     final queryStringNameValues = [];
diff --git a/pkg/dds/lib/src/devtools/machine_mode_command_handler.dart b/pkg/dds/lib/src/devtools/machine_mode_command_handler.dart
index 5b65d4c..e98f23e 100644
--- a/pkg/dds/lib/src/devtools/machine_mode_command_handler.dart
+++ b/pkg/dds/lib/src/devtools/machine_mode_command_handler.dart
@@ -18,7 +18,7 @@
 class MachineModeCommandHandler {
   static const launchDevToolsService = 'launchDevTools';
   static const copyAndCreateDevToolsFile = 'copyAndCreateDevToolsFile';
-  static const restoreDevToolsFile = 'restoreDevToolsFiles';
+  static const restoreDevToolsFile = 'restoreDevToolsFile';
   static const errorLaunchingBrowserCode = 500;
   static const bool machineMode = true;
 
@@ -67,7 +67,7 @@
     _stdinCommandStream.listen((Map<String, dynamic> json) async {
       // ID can be String, int or null
       final dynamic id = json['id'];
-      final Map<String, dynamic> params = json['params'];
+      final Map<String, dynamic> params = json['params'] ?? <String, dynamic>{};
       final method = json['method'];
       switch (method) {
         case 'vm.register':
@@ -200,7 +200,7 @@
   void _handleDevToolsSurvey(dynamic id, Map<String, dynamic> params) {
     _devToolsUsage ??= DevToolsUsage();
     final String surveyRequest = params['surveyRequest'];
-    final String value = params['value'];
+    final String value = params['value'] ?? '';
 
     switch (surveyRequest) {
       case copyAndCreateDevToolsFile:
@@ -212,8 +212,6 @@
             {
               'id': id,
               'result': {
-                // TODO(bkonyi): fix incorrect spelling of "success" here and
-                // below once we figure out the impact of changing this key.
                 'success': true,
               },
             },
diff --git a/pkg/dds/pubspec.yaml b/pkg/dds/pubspec.yaml
index cb3837e..a171150 100644
--- a/pkg/dds/pubspec.yaml
+++ b/pkg/dds/pubspec.yaml
@@ -16,7 +16,7 @@
   browser_launcher: ^1.0.0
   collection: ^1.15.0
   dds_service_extensions: ^1.3.0
-  devtools_shared: ^2.3.0
+  devtools_shared: ^2.11.1
   http_multi_server: ^3.0.0
   json_rpc_2: ^3.0.0
   meta: ^1.1.8
diff --git a/pkg/dds/test/common/test_helper.dart b/pkg/dds/test/common/test_helper.dart
index a9473ea..7325d97 100644
--- a/pkg/dds/test/common/test_helper.dart
+++ b/pkg/dds/test/common/test_helper.dart
@@ -61,3 +61,12 @@
   await service.resume(isolate.id!);
   await completer.future;
 }
+
+/// Returns the resolved URI to the pre-built devtools app.
+///
+/// The method caller is responsible for providing the relative [prefix] that
+/// will resolve to the sdk/ directory (e.g. '../../../').
+Uri devtoolsAppUri({required String prefix}) {
+  const pathFromSdkDirectory = 'third_party/devtools/web';
+  return Platform.script.resolve('$prefix$pathFromSdkDirectory');
+}
diff --git a/pkg/dds/test/devtools_observatory_connection_test.dart b/pkg/dds/test/devtools_observatory_connection_test.dart
index 3dcc6cc..ae3eb38 100644
--- a/pkg/dds/test/devtools_observatory_connection_test.dart
+++ b/pkg/dds/test/devtools_observatory_connection_test.dart
@@ -43,9 +43,7 @@
         remoteVmServiceUri,
         devToolsConfiguration: DevToolsConfiguration(
           enable: true,
-          customBuildDirectoryPath: Platform.script.resolve(
-            '../../../third_party/devtools/web',
-          ),
+          customBuildDirectoryPath: devtoolsAppUri(prefix: '../../../'),
         ),
       );
       expect(dds.isRunning, true);
diff --git a/pkg/dds/test/devtools_server/devtools_server_driver.dart b/pkg/dds/test/devtools_server/devtools_server_driver.dart
new file mode 100644
index 0000000..78d340e
--- /dev/null
+++ b/pkg/dds/test/devtools_server/devtools_server_driver.dart
@@ -0,0 +1,92 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'dart:async';
+import 'dart:convert';
+import 'dart:io';
+
+import 'package:devtools_shared/devtools_test_utils.dart';
+
+const verbose = true;
+
+class DevToolsServerDriver {
+  DevToolsServerDriver._(
+    this._process,
+    this._stdin,
+    Stream<String> _stdout,
+    Stream<String> _stderr,
+  )   : stdout = _convertToMapStream(_stdout),
+        stderr = _stderr.map((line) {
+          _trace('<== STDERR $line');
+          return line;
+        });
+
+  final Process _process;
+  final Stream<Map<String, dynamic>?> stdout;
+  final Stream<String> stderr;
+  final StringSink _stdin;
+
+  void write(Map<String, dynamic> request) {
+    final line = jsonEncode(request);
+    _trace('==> $line');
+    _stdin.writeln(line);
+  }
+
+  static Stream<Map<String, dynamic>?> _convertToMapStream(
+    Stream<String> stream,
+  ) {
+    return stream.map((line) {
+      _trace('<== $line');
+      return line;
+    }).map((line) {
+      try {
+        return jsonDecode(line) as Map<String, dynamic>;
+      } catch (e) {
+        return null;
+      }
+    }).where((item) => item != null);
+  }
+
+  static void _trace(String message) {
+    if (verbose) {
+      print(message);
+    }
+  }
+
+  bool kill() => _process.kill();
+
+  static Future<DevToolsServerDriver> create({
+    int port = 0,
+    int? tryPorts,
+    List<String> additionalArgs = const [],
+  }) async {
+    final script = Platform.script.resolveUri(Uri.parse('serve_devtools.dart'));
+    final args = [
+      script.path,
+      '--machine',
+      '--port',
+      '$port',
+      ...additionalArgs,
+    ];
+
+    if (tryPorts != null) {
+      args.addAll(['--try-ports', '$tryPorts']);
+    }
+
+    if (useChromeHeadless && headlessModeIsSupported) {
+      args.add('--headless');
+    }
+    final Process process = await Process.start(
+      Platform.resolvedExecutable,
+      args,
+    );
+
+    return DevToolsServerDriver._(
+      process,
+      process.stdin,
+      process.stdout.transform(utf8.decoder).transform(const LineSplitter()),
+      process.stderr.transform(utf8.decoder).transform(const LineSplitter()),
+    );
+  }
+}
diff --git a/pkg/dds/test/devtools_server/devtools_server_test.dart b/pkg/dds/test/devtools_server/devtools_server_test.dart
new file mode 100644
index 0000000..61049fc
--- /dev/null
+++ b/pkg/dds/test/devtools_server/devtools_server_test.dart
@@ -0,0 +1,592 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'dart:async';
+import 'dart:convert';
+import 'dart:io';
+
+import 'package:dds/devtools_server.dart';
+import 'package:dds/src/devtools/machine_mode_command_handler.dart';
+import 'package:devtools_shared/devtools_shared.dart';
+import 'package:devtools_shared/devtools_test_utils.dart';
+import 'package:test/test.dart';
+import 'package:vm_service/vm_service.dart';
+
+import 'devtools_server_driver.dart';
+
+late CliAppFixture appFixture;
+late DevToolsServerDriver server;
+final completers = <String, Completer<Map<String, dynamic>>>{};
+
+/// A broadcast stream controller for streaming events from the server.
+late StreamController<Map<String, dynamic>> eventController;
+
+/// A broadcast stream of events from the server.
+///
+/// Listening for "server.started" events on this stream may be unreliable
+/// because it may have occurred before the test starts. Use the
+/// [serverStartedEvent] instead.
+Stream<Map<String, dynamic>> get events => eventController.stream;
+
+/// Completer that signals when the server started event has been received.
+late Completer<Map<String, dynamic>> serverStartedEvent;
+
+final Map<String, String> registeredServices = {};
+
+// A list of PIDs for Chrome instances spawned by tests that should be
+// cleaned up.
+final List<int> browserPids = [];
+
+void main() {
+  late StreamSubscription<String> stderrSub;
+  late StreamSubscription<Map<String, dynamic>?> stdoutSub;
+
+  setUp(() async {
+    serverStartedEvent = Completer<Map<String, dynamic>>();
+    eventController = StreamController<Map<String, dynamic>>.broadcast();
+
+    // Start the command-line server.
+    server = await DevToolsServerDriver.create();
+
+    // Fail tests on any stderr.
+    stderrSub = server.stderr.listen((text) => throw 'STDERR: $text');
+    stdoutSub = server.stdout.listen((map) {
+      if (map!.containsKey('id')) {
+        if (map.containsKey('result')) {
+          completers[map['id']]!.complete(map['result']);
+        } else {
+          completers[map['id']]!.completeError(map['error']);
+        }
+      } else if (map.containsKey('event')) {
+        if (map['event'] == 'server.started') {
+          serverStartedEvent.complete(map);
+        }
+        eventController.add(map);
+      }
+    });
+
+    await serverStartedEvent.future;
+    await _startApp();
+  });
+
+  tearDown(() async {
+    browserPids
+      ..forEach((pid) => Process.killPid(pid, ProcessSignal.sigkill))
+      ..clear();
+    await stdoutSub.cancel();
+    await stderrSub.cancel();
+    server.kill();
+    await appFixture.teardown();
+  });
+
+  test('registers service', () async {
+    final serverResponse = await _send(
+      'vm.register',
+      {'uri': appFixture.serviceUri.toString()},
+    );
+    expect(serverResponse['success'], isTrue);
+
+    // Expect the VM service to see the launchDevTools service registered.
+    expect(registeredServices, contains(DevToolsServer.launchDevToolsService));
+  }, timeout: const Timeout.factor(10));
+
+  test('can bind to next available port', () async {
+    final server1 = await DevToolsServerDriver.create(port: 8855);
+    try {
+      // Wait for the first server to start up and ensure it got the
+      // expected port.
+      final event1 = (await server1.stdout.firstWhere(
+        (map) => map!['event'] == 'server.started',
+      ))!;
+      expect(event1['params']['port'], 8855);
+
+      // Now spawn another requesting the same port and ensure it got the next
+      // port number.
+      final server2 = await DevToolsServerDriver.create(
+        port: 8855,
+        tryPorts: 2,
+      );
+      try {
+        final event2 = (await server2.stdout.firstWhere(
+          (map) => map!['event'] == 'server.started',
+        ))!;
+
+        expect(event2['params']['port'], 8856);
+      } finally {
+        server2.kill();
+      }
+    } finally {
+      server1.kill();
+    }
+  }, timeout: const Timeout.factor(10));
+
+  test('allows embedding without flag', () async {
+    final server = await DevToolsServerDriver.create();
+    final httpClient = HttpClient();
+    late HttpClientResponse resp;
+    try {
+      final startedEvent = (await server.stdout.firstWhere(
+        (map) => map!['event'] == 'server.started',
+      ))!;
+      final host = startedEvent['params']['host'];
+      final port = startedEvent['params']['port'];
+
+      final req = await httpClient.get(host, port, '/');
+      resp = await req.close();
+      expect(resp.headers.value('x-frame-options'), isNull);
+    } finally {
+      httpClient.close();
+      await resp.drain();
+      server.kill();
+    }
+  }, timeout: const Timeout.factor(10));
+
+  test('does not allow embedding with flag', () async {
+    final server = await DevToolsServerDriver.create(
+      additionalArgs: ['--no-allow-embedding'],
+    );
+    final httpClient = HttpClient();
+    late HttpClientResponse resp;
+    try {
+      final startedEvent = (await server.stdout.firstWhere(
+        (map) => map!['event'] == 'server.started',
+      ))!;
+      final host = startedEvent['params']['host'];
+      final port = startedEvent['params']['port'];
+
+      final req = await httpClient.get(host, port, '/');
+      resp = await req.close();
+      expect(resp.headers.value('x-frame-options'), 'SAMEORIGIN');
+    } finally {
+      httpClient.close();
+      await resp.drain();
+      server.kill();
+    }
+  }, timeout: const Timeout.factor(10));
+
+  test('Analytics Survey', () async {
+    var serverResponse = await _send('devTools.survey', {
+      'surveyRequest': 'copyAndCreateDevToolsFile',
+    });
+    expect(serverResponse, isNotNull);
+    expect(serverResponse['success'], isTrue);
+
+    serverResponse = await _send('devTools.survey', {
+      'surveyRequest': apiSetActiveSurvey,
+      'value': 'Q3-2019',
+    });
+    expect(serverResponse, isNotNull);
+    expect(serverResponse['success'], isTrue);
+    expect(serverResponse['activeSurvey'], 'Q3-2019');
+
+    serverResponse = await _send('devTools.survey', {
+      'surveyRequest': apiIncrementSurveyShownCount,
+    });
+    expect(serverResponse, isNotNull);
+    expect(serverResponse['activeSurvey'], 'Q3-2019');
+    expect(serverResponse['surveyShownCount'], 1);
+
+    serverResponse = await _send('devTools.survey', {
+      'surveyRequest': apiIncrementSurveyShownCount,
+    });
+    expect(serverResponse, isNotNull);
+    expect(serverResponse['activeSurvey'], 'Q3-2019');
+    expect(serverResponse['surveyShownCount'], 2);
+
+    serverResponse = await _send('devTools.survey', {
+      'surveyRequest': apiGetSurveyShownCount,
+    });
+    expect(serverResponse, isNotNull);
+    expect(serverResponse['activeSurvey'], 'Q3-2019');
+    expect(serverResponse['surveyShownCount'], 2);
+
+    serverResponse = await _send('devTools.survey', {
+      'surveyRequest': apiGetSurveyActionTaken,
+    });
+    expect(serverResponse, isNotNull);
+    expect(serverResponse['activeSurvey'], 'Q3-2019');
+    expect(serverResponse['surveyActionTaken'], isFalse);
+
+    serverResponse = await _send('devTools.survey', {
+      'surveyRequest': apiSetSurveyActionTaken,
+      'value': json.encode(true),
+    });
+    expect(serverResponse, isNotNull);
+    expect(serverResponse['activeSurvey'], 'Q3-2019');
+    expect(serverResponse['surveyActionTaken'], isTrue);
+
+    serverResponse = await _send('devTools.survey', {
+      'surveyRequest': MachineModeCommandHandler.restoreDevToolsFile,
+    });
+    expect(serverResponse, isNotNull);
+    expect(serverResponse['success'], isTrue);
+    expect(
+      serverResponse['content'],
+      '{\n'
+      '  \"Q3-2019\": {\n'
+      '    \"surveyActionTaken\": true,\n'
+      '    \"surveyShownCount\": 2\n'
+      '  }\n'
+      '}\n',
+    );
+  }, timeout: const Timeout.factor(10));
+
+  for (final bool useVmService in [true, false]) {
+    group('Server (${useVmService ? 'VM Service' : 'API'})', () {
+      test(
+          'DevTools connects back to server API and registers that it is connected',
+          () async {
+        // Register the VM.
+        await _send('vm.register', {'uri': appFixture.serviceUri.toString()});
+
+        // Send a request to launch DevTools in a browser.
+        await _sendLaunchDevToolsRequest(useVmService: useVmService);
+
+        final serverResponse =
+            await _waitForClients(requiredConnectionState: true);
+        expect(serverResponse, isNotNull);
+        expect(serverResponse['clients'], hasLength(1));
+        expect(serverResponse['clients'][0]['hasConnection'], isTrue);
+        expect(
+          serverResponse['clients'][0]['vmServiceUri'],
+          appFixture.serviceUri.toString(),
+        );
+      }, timeout: const Timeout.factor(10));
+
+      test('can launch on a specific page', () async {
+        // Register the VM.
+        await _send('vm.register', {'uri': appFixture.serviceUri.toString()});
+
+        // Send a request to launch at a certain page.
+        await _sendLaunchDevToolsRequest(
+          useVmService: useVmService,
+          page: 'memory',
+        );
+
+        final serverResponse = await _waitForClients(requiredPage: 'memory');
+        expect(serverResponse, isNotNull);
+        expect(serverResponse['clients'], hasLength(1));
+        expect(serverResponse['clients'][0]['hasConnection'], isTrue);
+        expect(
+          serverResponse['clients'][0]['vmServiceUri'],
+          appFixture.serviceUri.toString(),
+        );
+        expect(serverResponse['clients'][0]['currentPage'], 'memory');
+      }, timeout: const Timeout.factor(10));
+
+      test('can switch page', () async {
+        await _send('vm.register', {'uri': appFixture.serviceUri.toString()});
+
+        // Launch on the memory page and wait for the connection.
+        await _sendLaunchDevToolsRequest(
+          useVmService: useVmService,
+          page: 'memory',
+        );
+        await _waitForClients(requiredPage: 'memory');
+
+        // Re-launch, allowing reuse and with a different page.
+        await _sendLaunchDevToolsRequest(
+          useVmService: useVmService,
+          reuseWindows: true,
+          page: 'logging',
+        );
+
+        final serverResponse = await _waitForClients(requiredPage: 'logging');
+        expect(serverResponse, isNotNull);
+        expect(serverResponse['clients'], hasLength(1));
+        expect(serverResponse['clients'][0]['hasConnection'], isTrue);
+        expect(
+          serverResponse['clients'][0]['vmServiceUri'],
+          appFixture.serviceUri.toString(),
+        );
+        expect(serverResponse['clients'][0]['currentPage'], 'logging');
+      }, timeout: const Timeout.factor(20));
+
+      test('DevTools reports disconnects from a VM', () async {
+        // Register the VM.
+        await _send('vm.register', {'uri': appFixture.serviceUri.toString()});
+
+        // Send a request to launch DevTools in a browser.
+        await _sendLaunchDevToolsRequest(useVmService: useVmService);
+
+        // Wait for the DevTools to inform server that it's connected.
+        await _waitForClients(requiredConnectionState: true);
+
+        // Terminate the VM.
+        await appFixture.teardown();
+
+        // Ensure the client is marked as disconnected.
+        final serverResponse =
+            await _waitForClients(requiredConnectionState: false);
+        expect(serverResponse['clients'], hasLength(1));
+        expect(serverResponse['clients'][0]['hasConnection'], isFalse);
+        expect(serverResponse['clients'][0]['vmServiceUri'], isNull);
+      }, timeout: const Timeout.factor(20));
+
+      test('server removes clients that disconnect from the API', () async {
+        final event = await serverStartedEvent.future;
+
+        // Spawn our own Chrome process so we can terminate it.
+        final devToolsUri =
+            'http://${event['params']['host']}:${event['params']['port']}';
+        final chrome = await Chrome.locate()!.start(url: devToolsUri);
+
+        // Wait for DevTools to inform server that it's connected.
+        await _waitForClients();
+
+        // Close the browser, which will disconnect DevTools SSE connection
+        // back to the server.
+        chrome.kill();
+
+        // Await a long delay to wait for the SSE client to close.
+        await delay(duration: const Duration(seconds: 20));
+
+        // Ensure the client is completely removed from the list.
+        await _waitForClients(expectNone: true, useLongTimeout: true);
+      }, timeout: const Timeout.factor(20));
+
+      test('Server reuses DevTools instance if already connected to same VM',
+          () async {
+        // Register the VM.
+        await _send('vm.register', {'uri': appFixture.serviceUri.toString()});
+
+        // Send a request to launch DevTools in a browser.
+        await _sendLaunchDevToolsRequest(useVmService: useVmService);
+
+        {
+          final serverResponse = await _waitForClients(
+            requiredConnectionState: true,
+          );
+          expect(serverResponse['clients'], hasLength(1));
+        }
+
+        // Request again, allowing reuse, and server emits an event saying the
+        // window was reused.
+        final launchResponse = await _sendLaunchDevToolsRequest(
+          useVmService: useVmService,
+          reuseWindows: true,
+        );
+        expect(launchResponse['reused'], isTrue);
+
+        // Ensure there's still only one connection (eg. we didn't spawn a new one
+        // we reused the existing one).
+        final serverResponse =
+            await _waitForClients(requiredConnectionState: true);
+        expect(serverResponse['clients'], hasLength(1));
+      }, timeout: const Timeout.factor(20));
+
+      test('Server does not reuse DevTools instance if embedded', () async {
+        // Register the VM.
+        await _send('vm.register', {'uri': appFixture.serviceUri.toString()});
+
+        // Spawn an embedded version of DevTools in a browser.
+        final event = await serverStartedEvent.future;
+        final devToolsUri =
+            'http://${event['params']['host']}:${event['params']['port']}';
+        final launchUrl = '$devToolsUri/?embed=true&page=logging'
+            '&uri=${Uri.encodeQueryComponent(appFixture.serviceUri.toString())}';
+        final chrome = await Chrome.locate()!.start(url: launchUrl);
+        try {
+          {
+            final serverResponse =
+                await _waitForClients(requiredConnectionState: true);
+            expect(serverResponse['clients'], hasLength(1));
+          }
+
+          // Send a request to the server to launch and ensure it did
+          // not reuse the existing connection. Launch it on a different page
+          // so we can easily tell once this one has connected.
+          final launchResponse = await _sendLaunchDevToolsRequest(
+            useVmService: useVmService,
+            reuseWindows: true,
+            page: 'memory',
+          );
+          expect(launchResponse['reused'], isFalse);
+
+          // Ensure there's now two connections.
+          final serverResponse = await _waitForClients(
+            requiredConnectionState: true,
+            requiredPage: 'memory',
+          );
+          expect(serverResponse['clients'], hasLength(2));
+        } finally {
+          chrome.kill();
+        }
+      }, timeout: const Timeout.factor(20));
+
+      test('Server reuses DevTools instance if not connected to a VM',
+          () async {
+        // Register the VM.
+        await _send('vm.register', {'uri': appFixture.serviceUri.toString()});
+
+        // Send a request to launch DevTools in a browser.
+        await _sendLaunchDevToolsRequest(useVmService: useVmService);
+
+        // Wait for the DevTools to inform server that it's connected.
+        await _waitForClients(requiredConnectionState: true);
+
+        // Terminate the VM.
+        await appFixture.teardown();
+
+        // Ensure the client is marked as disconnected.
+        await _waitForClients(requiredConnectionState: false);
+
+        // Start up a new app.
+        await _startApp();
+        await _send('vm.register', {'uri': appFixture.serviceUri.toString()});
+
+        // Send a new request to launch.
+        await _sendLaunchDevToolsRequest(
+          useVmService: useVmService,
+          reuseWindows: true,
+          notify: true,
+        );
+
+        // Ensure we now have a single connected client.
+        final serverResponse =
+            await _waitForClients(requiredConnectionState: true);
+        expect(serverResponse['clients'], hasLength(1));
+        expect(serverResponse['clients'][0]['hasConnection'], isTrue);
+        expect(
+          serverResponse['clients'][0]['vmServiceUri'],
+          appFixture.serviceUri.toString(),
+        );
+      }, timeout: const Timeout.factor(20));
+    });
+  }
+}
+
+Future<Map<String, dynamic>> _sendLaunchDevToolsRequest({
+  required bool useVmService,
+  String? page,
+  bool notify = false,
+  bool reuseWindows = false,
+}) async {
+  final launchEvent = events.where((e) => e['event'] == 'client.launch').first;
+  if (useVmService) {
+    await appFixture.serviceConnection.callMethod(
+      registeredServices[DevToolsServer.launchDevToolsService]!,
+      args: {
+        'reuseWindows': reuseWindows,
+        'page': page,
+        'notify': notify,
+      },
+    );
+  } else {
+    await _send(
+      'devTools.launch',
+      {
+        'vmServiceUri': appFixture.serviceUri.toString(),
+        'reuseWindows': reuseWindows,
+        'page': page,
+      },
+    );
+  }
+  final response = await launchEvent;
+  final pid = response['params']['pid'];
+  if (pid != null) {
+    browserPids.add(pid);
+  }
+  return response['params'];
+}
+
+Future<void> _startApp() async {
+  final appUri =
+      Platform.script.resolveUri(Uri.parse('../fixtures/empty_dart_app.dart'));
+  appFixture = await CliAppFixture.create(appUri.path);
+
+  // Track services method names as they're registered.
+  appFixture.serviceConnection
+      .onEvent(EventStreams.kService)
+      .where((e) => e.kind == EventKind.kServiceRegistered)
+      .listen((e) => registeredServices[e.service!] = e.method!);
+  await appFixture.serviceConnection.streamListen(EventStreams.kService);
+}
+
+int nextId = 0;
+Future<Map<String, dynamic>> _send(
+  String method, [
+  Map<String, dynamic>? params,
+]) {
+  final id = (nextId++).toString();
+  completers[id] = Completer<Map<String, dynamic>>();
+  server.write({'id': id.toString(), 'method': method, 'params': params});
+  return completers[id]!.future;
+}
+
+// It may take time for the servers client list to be updated as the web app
+// connects, so this helper just polls waiting for the expected state and
+// then returns the client list.
+Future<Map<String, dynamic>> _waitForClients({
+  bool? requiredConnectionState,
+  String? requiredPage,
+  bool expectNone = false,
+  bool useLongTimeout = false,
+  Duration delayDuration = defaultDelay,
+}) async {
+  late Map<String, dynamic> serverResponse;
+
+  String timeoutMessage = expectNone
+      ? 'Server returned clients'
+      : 'Server did not return any known clients';
+  if (requiredConnectionState != null) {
+    timeoutMessage += requiredConnectionState
+        ? ' that are connected'
+        : ' that are not connected';
+  }
+  if (requiredPage != null) {
+    timeoutMessage += ' that are on page $requiredPage';
+  }
+
+  final isOnPage = (client) => client['currentPage'] == requiredPage;
+  final hasConnectionState = (client) => requiredConnectionState ?? false
+      // If we require a connected client, also require a non-null page. This
+      // avoids a race in tests where we may proceed to send messages to a client
+      // that is not fully initialised.
+      ? (client['hasConnection'] && client['currentPage'] != null)
+      : !client['hasConnection'];
+
+  await waitFor(
+    () async {
+      // Await a short delay to give the client time to connect.
+      await delay();
+
+      serverResponse = await _send('client.list');
+      final clients = serverResponse['clients'];
+      return clients is List &&
+          (clients.isEmpty == expectNone) &&
+          (requiredPage == null || clients.any(isOnPage)) &&
+          (requiredConnectionState == null || clients.any(hasConnectionState));
+    },
+    timeout: useLongTimeout ? longTimeout : defaultTimeout,
+    timeoutMessage: timeoutMessage,
+    delayDuration: delayDuration,
+  );
+
+  return serverResponse;
+}
+
+Future<void> waitFor(
+  Future<bool> condition(), {
+  Duration timeout = defaultTimeout,
+  String timeoutMessage = 'condition not satisfied',
+  Duration delayDuration = defaultDelay,
+}) async {
+  final DateTime end = DateTime.now().add(timeout);
+  while (!end.isBefore(DateTime.now())) {
+    if (await condition()) {
+      return;
+    }
+    await delay(duration: delayDuration);
+  }
+  throw timeoutMessage;
+}
+
+Future delay({Duration duration = defaultDelay}) {
+  return Future.delayed(duration);
+}
+
+const defaultDelay = Duration(milliseconds: 500);
+const defaultTimeout = Duration(seconds: 10);
+const longTimeout = Duration(seconds: 30);
diff --git a/pkg/dds/test/devtools_server/serve_devtools.dart b/pkg/dds/test/devtools_server/serve_devtools.dart
new file mode 100644
index 0000000..25a3dfc
--- /dev/null
+++ b/pkg/dds/test/devtools_server/serve_devtools.dart
@@ -0,0 +1,18 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:async';
+
+import 'package:dds/devtools_server.dart';
+
+import '../common/test_helper.dart';
+
+void main(List<String> args) {
+  unawaited(
+    DevToolsServer().serveDevToolsWithArgs(
+      args,
+      customDevToolsPath: devtoolsAppUri(prefix: '../../../../').path,
+    ),
+  );
+}
diff --git a/pkg/dds/test/fixtures/empty_dart_app.dart b/pkg/dds/test/fixtures/empty_dart_app.dart
new file mode 100644
index 0000000..e96e4fe
--- /dev/null
+++ b/pkg/dds/test/fixtures/empty_dart_app.dart
@@ -0,0 +1,16 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'dart:async';
+
+void main() async {
+  print('starting empty app');
+
+  var myVar = 0;
+  while (true) {
+    myVar++;
+    print(myVar);
+    await (Future.delayed(const Duration(seconds: 2)));
+  }
+}
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
index a8921af..184639e 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -775,6 +775,7 @@
   @override
   void endClassFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
diff --git a/pkg/front_end/lib/src/fasta/kernel/macro_annotation_parser.dart b/pkg/front_end/lib/src/fasta/kernel/macro_annotation_parser.dart
index 8105873..ad4f712 100644
--- a/pkg/front_end/lib/src/fasta/kernel/macro_annotation_parser.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/macro_annotation_parser.dart
@@ -426,6 +426,7 @@
   void beginFields(
       DeclarationKind declarationKind,
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -589,7 +590,8 @@
   }
 
   @override
-  void beginMixinDeclaration(Token mixinKeyword, Token name) {
+  void beginMixinDeclaration(
+      Token? augmentToken, Token mixinKeyword, Token name) {
     _unexpected();
   }
 
@@ -670,7 +672,8 @@
   }
 
   @override
-  void beginTopLevelMethod(Token lastConsumed, Token? externalToken) {
+  void beginTopLevelMethod(
+      Token lastConsumed, Token? augmentToken, Token? externalToken) {
     _unexpected();
   }
 
@@ -802,6 +805,7 @@
   @override
   void endClassFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -902,6 +906,7 @@
   @override
   void endEnumFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -945,6 +950,7 @@
   @override
   void endExtensionFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -1163,6 +1169,7 @@
   @override
   void endMixinFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
diff --git a/pkg/front_end/lib/src/fasta/modifier.dart b/pkg/front_end/lib/src/fasta/modifier.dart
index 1d0b3f7..80d44c9 100644
--- a/pkg/front_end/lib/src/fasta/modifier.dart
+++ b/pkg/front_end/lib/src/fasta/modifier.dart
@@ -8,6 +8,7 @@
 
 enum ModifierEnum {
   Abstract,
+  Augment,
   Const,
   Covariant,
   External,
@@ -20,7 +21,9 @@
 
 const int abstractMask = 1;
 
-const int constMask = abstractMask << 1;
+const int augmentMask = abstractMask << 1;
+
+const int constMask = augmentMask << 1;
 
 const int covariantMask = constMask << 1;
 
@@ -60,6 +63,8 @@
 
 const Modifier Abstract = const Modifier(ModifierEnum.Abstract, abstractMask);
 
+const Modifier Augment = const Modifier(ModifierEnum.Augment, augmentMask);
+
 const Modifier Const = const Modifier(ModifierEnum.Const, constMask);
 
 const Modifier Covariant =
@@ -83,6 +88,7 @@
 
   factory Modifier.fromString(String string) {
     if (identical('abstract', string)) return Abstract;
+    if (identical('augment', string)) return Augment;
     if (identical('const', string)) return Const;
     if (identical('covariant', string)) return Covariant;
     if (identical('external', string)) return External;
diff --git a/pkg/front_end/lib/src/fasta/source/diet_listener.dart b/pkg/front_end/lib/src/fasta/source/diet_listener.dart
index 2de10ba..9d39bb9 100644
--- a/pkg/front_end/lib/src/fasta/source/diet_listener.dart
+++ b/pkg/front_end/lib/src/fasta/source/diet_listener.dart
@@ -332,6 +332,7 @@
   @override
   void endClassFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -929,7 +930,8 @@
   }
 
   @override
-  void beginMixinDeclaration(Token mixinKeyword, Token name) {
+  void beginMixinDeclaration(
+      Token? augmentToken, Token mixinKeyword, Token name) {
     debugEvent("beginMixinDeclaration");
     push(mixinKeyword);
   }
@@ -1032,6 +1034,7 @@
   @override
   void endEnumFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
diff --git a/pkg/front_end/lib/src/fasta/source/outline_builder.dart b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
index 97f94e2..ff57726 100644
--- a/pkg/front_end/lib/src/fasta/source/outline_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
@@ -51,6 +51,7 @@
         Static,
         Var,
         abstractMask,
+        augmentMask,
         constMask,
         covariantMask,
         externalMask,
@@ -821,30 +822,21 @@
             macroToken.next!.length);
         macroToken = null;
       }
-      if (augmentToken != null) {
-        // TODO(johnniwinther): We should emit a different message when the
-        // experiment is not released yet. The current message indicates that
-        // changing the sdk version can solve the problem.
-        addProblem(
-            templateExperimentNotEnabled.withArguments(
-                'macros', libraryBuilder.enableMacrosVersionInLibrary.toText()),
-            augmentToken.next!.charOffset,
-            augmentToken.next!.length);
-        augmentToken = null;
-      }
     }
     push(macroToken ?? NullValue.Token);
     push(augmentToken ?? NullValue.Token);
   }
 
   @override
-  void beginMixinDeclaration(Token mixinKeyword, Token name) {
+  void beginMixinDeclaration(
+      Token? augmentToken, Token mixinKeyword, Token name) {
     debugEvent("beginMixinDeclaration");
     popDeclarationContext(
         DeclarationContext.ClassOrMixinOrNamedMixinApplication);
     pushDeclarationContext(DeclarationContext.Mixin);
     List<TypeVariableBuilder>? typeVariables =
         pop() as List<TypeVariableBuilder>?;
+    push(augmentToken ?? NullValue.Token);
     push(typeVariables ?? NullValue.TypeVariables);
     libraryBuilder.currentTypeParameterScopeBuilder
         .markAsMixinDeclaration(name.lexeme, name.charOffset, typeVariables);
@@ -927,14 +919,6 @@
             macroToken.next!.length);
         macroToken = null;
       }
-      if (augmentToken != null) {
-        addProblem(
-            templateExperimentNotEnabled.withArguments(
-                'macros', libraryBuilder.enableMacrosVersionInLibrary.toText()),
-            augmentToken.next!.charOffset,
-            augmentToken.next!.length);
-        augmentToken = null;
-      }
     }
     push(macroToken ?? NullValue.Token);
     push(augmentToken ?? NullValue.Token);
@@ -1183,12 +1167,26 @@
   @override
   void endMixinDeclaration(Token mixinToken, Token endToken) {
     debugEvent("endMixinDeclaration");
+    assert(checkState(mixinToken, [
+      /* interfaces */ ValueKinds.TypeBuilderListOrNull,
+      /* supertypeConstraints */ unionOfKinds([
+        ValueKinds.TypeBuilderListOrNull,
+        ValueKinds.ParserRecovery,
+      ]),
+      /* type variables */ ValueKinds.TypeVariableListOrNull,
+      /* augment token */ ValueKinds.TokenOrNull,
+      /* name offset */ ValueKinds.Integer,
+      /* name */ ValueKinds.NameOrParserRecovery,
+      /* metadata */ ValueKinds.MetadataListOrNull,
+    ]));
+
     List<TypeBuilder>? interfaces =
         pop(NullValue.TypeBuilderList) as List<TypeBuilder>?;
     List<TypeBuilder>? supertypeConstraints =
         nullIfParserRecovery(pop()) as List<TypeBuilder>?;
     List<TypeVariableBuilder>? typeVariables =
         pop(NullValue.TypeVariables) as List<TypeVariableBuilder>?;
+    Token? augmentToken = pop(NullValue.Token) as Token?;
     int nameOffset = popCharOffset();
     Object? name = pop();
     List<MetadataBuilder>? metadata =
@@ -1255,7 +1253,8 @@
           startOffset,
           nameOffset,
           endToken.charOffset,
-          -1);
+          -1,
+          isAugmentation: augmentToken != null);
     }
     libraryBuilder.setCurrentClassName(null);
     popDeclarationContext(DeclarationContext.Mixin);
@@ -1395,12 +1394,20 @@
   }
 
   @override
-  void beginTopLevelMethod(Token lastConsumed, Token? externalToken) {
+  void beginTopLevelMethod(
+      Token lastConsumed, Token? augmentToken, Token? externalToken) {
     pushDeclarationContext(DeclarationContext.TopLevelMethod);
     libraryBuilder.beginNestedDeclaration(
         TypeParameterScopeKind.topLevelMethod, "#method",
         hasMembers: false);
-    push(externalToken != null ? externalMask : 0);
+    int modifiers = 0;
+    if (augmentToken != null) {
+      modifiers |= augmentMask;
+    }
+    if (externalToken != null) {
+      modifiers |= externalMask;
+    }
+    push(modifiers);
   }
 
   @override
@@ -2658,6 +2665,7 @@
   void beginFields(
       DeclarationKind declarationKind,
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -2747,6 +2755,7 @@
   @override
   void endClassFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -2787,6 +2796,7 @@
     List<FieldInfo>? fieldInfos = popFieldInfos(count);
     TypeBuilder? type = pop() as TypeBuilder?;
     int modifiers = (abstractToken != null ? abstractMask : 0) |
+        (augmentToken != null ? augmentMask : 0) |
         (externalToken != null ? externalMask : 0) |
         (staticToken != null ? staticMask : 0) |
         (covariantToken != null ? covariantMask : 0) |
@@ -3142,6 +3152,7 @@
   @override
   void endEnumFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -3157,8 +3168,17 @@
           beginToken.charOffset,
           -1);
     }
-    endClassFields(abstractToken, externalToken, staticToken, covariantToken,
-        lateToken, varFinalOrConst, count, beginToken, endToken);
+    endClassFields(
+        abstractToken,
+        augmentToken,
+        externalToken,
+        staticToken,
+        covariantToken,
+        lateToken,
+        varFinalOrConst,
+        count,
+        beginToken,
+        endToken);
   }
 
   @override
diff --git a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
index 10654aa..970cc29 100644
--- a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
@@ -1795,7 +1795,8 @@
       int startOffset,
       int nameOffset,
       int endOffset,
-      int supertypeOffset) {
+      int supertypeOffset,
+      {required bool isAugmentation}) {
     _addClass(
         TypeParameterScopeKind.mixinDeclaration,
         metadata,
@@ -1809,7 +1810,7 @@
         endOffset,
         supertypeOffset,
         isMacro: false,
-        isAugmentation: false);
+        isAugmentation: isAugmentation);
   }
 
   void _addClass(
diff --git a/pkg/front_end/lib/src/fasta/source/source_loader.dart b/pkg/front_end/lib/src/fasta/source/source_loader.dart
index 2dfbd15..57a4561 100644
--- a/pkg/front_end/lib/src/fasta/source/source_loader.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_loader.dart
@@ -875,7 +875,8 @@
             enableNonNullable: target.isExperimentEnabledInLibraryByVersion(
                 ExperimentalFlag.nonNullable,
                 library.importUri,
-                library.packageLanguageVersion.version)),
+                library.packageLanguageVersion.version),
+            forAugmentationLibrary: library.isAugmentation),
         languageVersionChanged:
             (Scanner scanner, LanguageVersionToken version) {
       if (!suppressLexicalErrors) {
diff --git a/pkg/front_end/lib/src/fasta/util/parser_ast_helper.dart b/pkg/front_end/lib/src/fasta/util/parser_ast_helper.dart
index a88ff23..ccb788f 100644
--- a/pkg/front_end/lib/src/fasta/util/parser_ast_helper.dart
+++ b/pkg/front_end/lib/src/fasta/util/parser_ast_helper.dart
@@ -224,9 +224,10 @@
   }
 
   @override
-  void beginMixinDeclaration(Token mixinKeyword, Token name) {
+  void beginMixinDeclaration(
+      Token? augmentToken, Token mixinKeyword, Token name) {
     MixinDeclarationBegin data = new MixinDeclarationBegin(ParserAstType.BEGIN,
-        mixinKeyword: mixinKeyword, name: name);
+        augmentToken: augmentToken, mixinKeyword: mixinKeyword, name: name);
     seen(data);
   }
 
@@ -596,6 +597,7 @@
   @override
   void endClassFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -606,6 +608,7 @@
       Token endToken) {
     ClassFieldsEnd data = new ClassFieldsEnd(ParserAstType.END,
         abstractToken: abstractToken,
+        augmentToken: augmentToken,
         externalToken: externalToken,
         staticToken: staticToken,
         covariantToken: covariantToken,
@@ -620,6 +623,7 @@
   @override
   void endMixinFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -630,6 +634,7 @@
       Token endToken) {
     MixinFieldsEnd data = new MixinFieldsEnd(ParserAstType.END,
         abstractToken: abstractToken,
+        augmentToken: augmentToken,
         externalToken: externalToken,
         staticToken: staticToken,
         covariantToken: covariantToken,
@@ -644,6 +649,7 @@
   @override
   void endExtensionFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -654,6 +660,7 @@
       Token endToken) {
     ExtensionFieldsEnd data = new ExtensionFieldsEnd(ParserAstType.END,
         abstractToken: abstractToken,
+        augmentToken: augmentToken,
         externalToken: externalToken,
         staticToken: staticToken,
         covariantToken: covariantToken,
@@ -668,6 +675,7 @@
   @override
   void endEnumFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -678,6 +686,7 @@
       Token endToken) {
     EnumFieldsEnd data = new EnumFieldsEnd(ParserAstType.END,
         abstractToken: abstractToken,
+        augmentToken: augmentToken,
         externalToken: externalToken,
         staticToken: staticToken,
         covariantToken: covariantToken,
@@ -1663,6 +1672,7 @@
   void beginFields(
       DeclarationKind declarationKind,
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -1672,6 +1682,7 @@
     FieldsBegin data = new FieldsBegin(ParserAstType.BEGIN,
         declarationKind: declarationKind,
         abstractToken: abstractToken,
+        augmentToken: augmentToken,
         externalToken: externalToken,
         staticToken: staticToken,
         covariantToken: covariantToken,
@@ -1704,9 +1715,12 @@
   }
 
   @override
-  void beginTopLevelMethod(Token lastConsumed, Token? externalToken) {
+  void beginTopLevelMethod(
+      Token lastConsumed, Token? augmentToken, Token? externalToken) {
     TopLevelMethodBegin data = new TopLevelMethodBegin(ParserAstType.BEGIN,
-        lastConsumed: lastConsumed, externalToken: externalToken);
+        lastConsumed: lastConsumed,
+        augmentToken: augmentToken,
+        externalToken: externalToken);
     seen(data);
   }
 
@@ -2947,15 +2961,17 @@
 }
 
 class MixinDeclarationBegin extends ParserAstNode {
+  final Token? augmentToken;
   final Token mixinKeyword;
   final Token name;
 
   MixinDeclarationBegin(ParserAstType type,
-      {required this.mixinKeyword, required this.name})
+      {this.augmentToken, required this.mixinKeyword, required this.name})
       : super("MixinDeclaration", type);
 
   @override
   Map<String, Object?> get deprecatedArguments => {
+        "augmentToken": augmentToken,
         "mixinKeyword": mixinKeyword,
         "name": name,
       };
@@ -3637,6 +3653,7 @@
 
 class ClassFieldsEnd extends ParserAstNode {
   final Token? abstractToken;
+  final Token? augmentToken;
   final Token? externalToken;
   final Token? staticToken;
   final Token? covariantToken;
@@ -3648,6 +3665,7 @@
 
   ClassFieldsEnd(ParserAstType type,
       {this.abstractToken,
+      this.augmentToken,
       this.externalToken,
       this.staticToken,
       this.covariantToken,
@@ -3661,6 +3679,7 @@
   @override
   Map<String, Object?> get deprecatedArguments => {
         "abstractToken": abstractToken,
+        "augmentToken": augmentToken,
         "externalToken": externalToken,
         "staticToken": staticToken,
         "covariantToken": covariantToken,
@@ -3674,6 +3693,7 @@
 
 class MixinFieldsEnd extends ParserAstNode {
   final Token? abstractToken;
+  final Token? augmentToken;
   final Token? externalToken;
   final Token? staticToken;
   final Token? covariantToken;
@@ -3685,6 +3705,7 @@
 
   MixinFieldsEnd(ParserAstType type,
       {this.abstractToken,
+      this.augmentToken,
       this.externalToken,
       this.staticToken,
       this.covariantToken,
@@ -3698,6 +3719,7 @@
   @override
   Map<String, Object?> get deprecatedArguments => {
         "abstractToken": abstractToken,
+        "augmentToken": augmentToken,
         "externalToken": externalToken,
         "staticToken": staticToken,
         "covariantToken": covariantToken,
@@ -3711,6 +3733,7 @@
 
 class ExtensionFieldsEnd extends ParserAstNode {
   final Token? abstractToken;
+  final Token? augmentToken;
   final Token? externalToken;
   final Token? staticToken;
   final Token? covariantToken;
@@ -3722,6 +3745,7 @@
 
   ExtensionFieldsEnd(ParserAstType type,
       {this.abstractToken,
+      this.augmentToken,
       this.externalToken,
       this.staticToken,
       this.covariantToken,
@@ -3735,6 +3759,7 @@
   @override
   Map<String, Object?> get deprecatedArguments => {
         "abstractToken": abstractToken,
+        "augmentToken": augmentToken,
         "externalToken": externalToken,
         "staticToken": staticToken,
         "covariantToken": covariantToken,
@@ -3748,6 +3773,7 @@
 
 class EnumFieldsEnd extends ParserAstNode {
   final Token? abstractToken;
+  final Token? augmentToken;
   final Token? externalToken;
   final Token? staticToken;
   final Token? covariantToken;
@@ -3759,6 +3785,7 @@
 
   EnumFieldsEnd(ParserAstType type,
       {this.abstractToken,
+      this.augmentToken,
       this.externalToken,
       this.staticToken,
       this.covariantToken,
@@ -3772,6 +3799,7 @@
   @override
   Map<String, Object?> get deprecatedArguments => {
         "abstractToken": abstractToken,
+        "augmentToken": augmentToken,
         "externalToken": externalToken,
         "staticToken": staticToken,
         "covariantToken": covariantToken,
@@ -5560,6 +5588,7 @@
 class FieldsBegin extends ParserAstNode {
   final DeclarationKind declarationKind;
   final Token? abstractToken;
+  final Token? augmentToken;
   final Token? externalToken;
   final Token? staticToken;
   final Token? covariantToken;
@@ -5570,6 +5599,7 @@
   FieldsBegin(ParserAstType type,
       {required this.declarationKind,
       this.abstractToken,
+      this.augmentToken,
       this.externalToken,
       this.staticToken,
       this.covariantToken,
@@ -5582,6 +5612,7 @@
   Map<String, Object?> get deprecatedArguments => {
         "declarationKind": declarationKind,
         "abstractToken": abstractToken,
+        "augmentToken": augmentToken,
         "externalToken": externalToken,
         "staticToken": staticToken,
         "covariantToken": covariantToken,
@@ -5627,15 +5658,17 @@
 
 class TopLevelMethodBegin extends ParserAstNode {
   final Token lastConsumed;
+  final Token? augmentToken;
   final Token? externalToken;
 
   TopLevelMethodBegin(ParserAstType type,
-      {required this.lastConsumed, this.externalToken})
+      {required this.lastConsumed, this.augmentToken, this.externalToken})
       : super("TopLevelMethod", type);
 
   @override
   Map<String, Object?> get deprecatedArguments => {
         "lastConsumed": lastConsumed,
+        "augmentToken": augmentToken,
         "externalToken": externalToken,
       };
 }
diff --git a/pkg/front_end/lib/src/fasta/util/textual_outline.dart b/pkg/front_end/lib/src/fasta/util/textual_outline.dart
index e902eab..106e509 100644
--- a/pkg/front_end/lib/src/fasta/util/textual_outline.dart
+++ b/pkg/front_end/lib/src/fasta/util/textual_outline.dart
@@ -726,6 +726,7 @@
   @override
   void endClassFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
diff --git a/pkg/front_end/parser_testcases/augmentation/member_declarations.dart b/pkg/front_end/parser_testcases/augmentation/member_declarations.dart
new file mode 100644
index 0000000..8a9b209
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/member_declarations.dart
@@ -0,0 +1,60 @@
+class Class {
+  augment method() {}
+  augment void method() {}
+  augment get getter => null;
+  augment int get getter => 0;
+  augment set setter(value) {}
+  augment void set setter(value) {}
+  augment var field;
+  augment final field = 0;
+  augment const field = 0;
+  augment int field;
+  augment late var field;
+  augment late final field;
+  augment late int field;
+
+  augment static method() {}
+  augment static void method() {}
+  augment static get getter => null;
+  augment static int get getter => 0;
+  augment static set setter(value) {}
+  augment static void set setter(value) {}
+  augment static var field;
+  augment static final field = 0;
+  augment static const field = 0;
+  augment static int field;
+  augment static late var field;
+  augment static late final field;
+  augment static late int field;
+}
+
+mixin Mixin {
+  augment method() {}
+  augment void method() {}
+  augment get getter => null;
+  augment int get getter => 0;
+  augment set setter(value) {}
+  augment void set setter(value) {}
+  augment var field;
+  augment final field = 0;
+  augment const field = 0;
+  augment int field;
+  augment late var field;
+  augment late final field;
+  augment late int field;
+
+  augment static method() {}
+  augment static void method() {}
+  augment static get getter => null;
+  augment static int get getter => 0;
+  augment static set setter(value) {}
+  augment static void set setter(value) {}
+  augment static var field;
+  augment static final field = 0;
+  augment static const field = 0;
+  augment static int field;
+  augment static late var field;
+  augment static late final field;
+  augment static late int field;
+}
+
diff --git a/pkg/front_end/parser_testcases/augmentation/member_declarations.dart.expect b/pkg/front_end/parser_testcases/augmentation/member_declarations.dart.expect
new file mode 100644
index 0000000..a7c54b5
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/member_declarations.dart.expect
@@ -0,0 +1,730 @@
+beginCompilationUnit(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(Class, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(class, null, null, null, Class)
+      handleNoType(Class)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, method)
+            handleNoType(augment)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(null, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, method)
+            handleVoidKeyword(void)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(null, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, get, getter)
+            handleNoType(augment)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(=>)
+            handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleLiteralNull(null)
+            handleExpressionFunctionBody(=>, ;)
+          endClassMethod(get, augment, =>, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, get, getter)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(get)
+            handleType(int, null)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(=>)
+            handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleLiteralInt(0)
+            handleExpressionFunctionBody(=>, ;)
+          endClassMethod(get, augment, =>, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, set, setter)
+            handleNoType(augment)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(set, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, set, setter)
+            handleVoidKeyword(void)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(set, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, null, var, })
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, null, null, null, var, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, null, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endClassFields(null, augment, null, null, null, null, final, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, null, const, ;)
+            handleNoType(const)
+            handleIdentifier(field, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endClassFields(null, augment, null, null, null, null, const, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, null, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, null, null, null, null, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, late, var, ;)
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, null, null, late, var, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, late, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, null, null, late, final, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, late, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, null, null, late, null, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, null, method)
+            handleNoType(static)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.StaticMethod)
+            endFormalParameters(0, (, ), MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(null, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, null, method)
+            handleVoidKeyword(void)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.StaticMethod)
+            endFormalParameters(0, (, ), MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(null, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, get, getter)
+            handleNoType(static)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(=>)
+            handleNoFormalParameters(=>, MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleLiteralNull(null)
+            handleExpressionFunctionBody(=>, ;)
+          endClassMethod(get, augment, =>, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, get, getter)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(get)
+            handleType(int, null)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(=>)
+            handleNoFormalParameters(=>, MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleLiteralInt(0)
+            handleExpressionFunctionBody(=>, ;)
+          endClassMethod(get, augment, =>, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, set, setter)
+            handleNoType(static)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.StaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.StaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+            endFormalParameters(1, (, ), MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(set, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, set, setter)
+            handleVoidKeyword(void)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.StaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.StaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+            endFormalParameters(1, (, ), MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(set, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, static, null, null, var, })
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, static, null, null, var, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, static, null, null, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endClassFields(null, augment, null, static, null, null, final, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, static, null, null, const, ;)
+            handleNoType(const)
+            handleIdentifier(field, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endClassFields(null, augment, null, static, null, null, const, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, static, null, null, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, static, null, null, null, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, static, null, late, var, ;)
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, static, null, late, var, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, static, null, late, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, static, null, late, final, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, static, null, late, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, static, null, late, null, 1, augment, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 26, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(mixin)
+  beginMetadataStar(mixin)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(mixin)
+    handleIdentifier(Mixin, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginMixinDeclaration(null, mixin, Mixin)
+      handleMixinOn(null, 0)
+      handleImplements(null, 0)
+      handleMixinHeader(mixin)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Mixin, {)
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Mixin, null, null, null, null, null, method)
+            handleNoType(augment)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endMixinMethod(null, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Mixin, null, null, null, null, null, method)
+            handleVoidKeyword(void)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endMixinMethod(null, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Mixin, null, null, null, null, get, getter)
+            handleNoType(augment)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(=>)
+            handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleLiteralNull(null)
+            handleExpressionFunctionBody(=>, ;)
+          endMixinMethod(get, augment, =>, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Mixin, null, null, null, null, get, getter)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(get)
+            handleType(int, null)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(=>)
+            handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleLiteralInt(0)
+            handleExpressionFunctionBody(=>, ;)
+          endMixinMethod(get, augment, =>, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Mixin, null, null, null, null, set, setter)
+            handleNoType(augment)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endMixinMethod(set, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Mixin, null, null, null, null, set, setter)
+            handleVoidKeyword(void)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endMixinMethod(set, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Mixin, null, augment, null, null, null, null, var, })
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endMixinFields(null, augment, null, null, null, null, var, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Mixin, null, augment, null, null, null, null, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endMixinFields(null, augment, null, null, null, null, final, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Mixin, null, augment, null, null, null, null, const, ;)
+            handleNoType(const)
+            handleIdentifier(field, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endMixinFields(null, augment, null, null, null, null, const, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Mixin, null, augment, null, null, null, null, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endMixinFields(null, augment, null, null, null, null, null, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Mixin, null, augment, null, null, null, late, var, ;)
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endMixinFields(null, augment, null, null, null, late, var, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Mixin, null, augment, null, null, null, late, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endMixinFields(null, augment, null, null, null, late, final, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Mixin, null, augment, null, null, null, late, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endMixinFields(null, augment, null, null, null, late, null, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Mixin, null, static, null, null, null, method)
+            handleNoType(static)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.StaticMethod)
+            endFormalParameters(0, (, ), MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endMixinMethod(null, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Mixin, null, static, null, null, null, method)
+            handleVoidKeyword(void)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.StaticMethod)
+            endFormalParameters(0, (, ), MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endMixinMethod(null, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Mixin, null, static, null, null, get, getter)
+            handleNoType(static)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(=>)
+            handleNoFormalParameters(=>, MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleLiteralNull(null)
+            handleExpressionFunctionBody(=>, ;)
+          endMixinMethod(get, augment, =>, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Mixin, null, static, null, null, get, getter)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(get)
+            handleType(int, null)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(=>)
+            handleNoFormalParameters(=>, MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleLiteralInt(0)
+            handleExpressionFunctionBody(=>, ;)
+          endMixinMethod(get, augment, =>, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Mixin, null, static, null, null, set, setter)
+            handleNoType(static)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.StaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.StaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+            endFormalParameters(1, (, ), MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endMixinMethod(set, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Mixin, null, static, null, null, set, setter)
+            handleVoidKeyword(void)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.StaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.StaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+            endFormalParameters(1, (, ), MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endMixinMethod(set, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Mixin, null, augment, null, static, null, null, var, })
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endMixinFields(null, augment, null, static, null, null, var, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Mixin, null, augment, null, static, null, null, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endMixinFields(null, augment, null, static, null, null, final, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Mixin, null, augment, null, static, null, null, const, ;)
+            handleNoType(const)
+            handleIdentifier(field, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endMixinFields(null, augment, null, static, null, null, const, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Mixin, null, augment, null, static, null, null, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endMixinFields(null, augment, null, static, null, null, null, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Mixin, null, augment, null, static, null, late, var, ;)
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endMixinFields(null, augment, null, static, null, late, var, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Mixin, null, augment, null, static, null, late, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endMixinFields(null, augment, null, static, null, late, final, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Mixin, null, augment, null, static, null, late, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endMixinFields(null, augment, null, static, null, late, null, 1, augment, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Mixin, 26, {, })
+    endMixinDeclaration(mixin, })
+  endTopLevelDeclaration()
+endCompilationUnit(2, )
diff --git a/pkg/front_end/parser_testcases/augmentation/member_declarations.dart.intertwined.expect b/pkg/front_end/parser_testcases/augmentation/member_declarations.dart.intertwined.expect
new file mode 100644
index 0000000..70dce5d
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/member_declarations.dart.intertwined.expect
@@ -0,0 +1,1404 @@
+parseUnit(class)
+  skipErrorTokens(class)
+  listener: beginCompilationUnit(class)
+  syntheticPreviousToken(class)
+  parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+    parseMetadataStar()
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(Class, classOrMixinDeclaration)
+        listener: handleNoTypeVariables({)
+        listener: beginClassDeclaration(class, null, null, null, Class)
+        parseClass(Class, class, class, Class)
+          parseClassHeaderOpt(Class, class, class)
+            parseClassExtendsOpt(Class)
+              listener: handleNoType(Class)
+              listener: handleClassExtends(null, 1)
+            parseClassWithClauseOpt(Class)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(Class)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(Class, DeclarationKind.Class, Class)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, Class)
+              parseMetadataStar({)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod({, null, null, null, null, null, null, augment, Instance of 'NoType', null, method, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, method)
+                listener: handleNoType(augment)
+                ensureIdentifierPotentiallyRecovered(augment, methodDeclaration, false)
+                  listener: handleIdentifier(method, methodDeclaration)
+                parseQualifiedRestOpt(method, methodDeclarationContinuation)
+                parseMethodTypeVar(method)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(method, method, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(method, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(null, augment, (, null, })
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseMethod(}, null, null, null, null, null, null, augment, Instance of 'VoidType', null, method, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, method)
+                listener: handleVoidKeyword(void)
+                ensureIdentifierPotentiallyRecovered(void, methodDeclaration, false)
+                  listener: handleIdentifier(method, methodDeclaration)
+                parseQualifiedRestOpt(method, methodDeclarationContinuation)
+                parseMethodTypeVar(method)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(method, method, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(method, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(null, augment, (, null, })
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseMethod(}, null, null, null, null, null, null, augment, Instance of 'NoType', get, getter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, get, getter)
+                listener: handleNoType(augment)
+                ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                  listener: handleIdentifier(getter, methodDeclaration)
+                parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(=>)
+                parseGetterOrFormalParameters(getter, getter, true, MemberKind.NonStaticMethod)
+                  listener: handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
+                parseInitializersOpt(getter)
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt(getter)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                inPlainSync()
+                parseFunctionBody(getter, false, true)
+                  parseExpressionFunctionBody(=>, false)
+                    parseExpression(=>)
+                      parsePrecedenceExpression(=>, 1, true)
+                        parseUnaryExpression(=>, true)
+                          parsePrimary(=>, expression)
+                            parseLiteralNull(=>)
+                              listener: handleLiteralNull(null)
+                    ensureSemicolon(null)
+                    listener: handleExpressionFunctionBody(=>, ;)
+                    inGenerator()
+                listener: endClassMethod(get, augment, =>, null, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseMethod(;, null, null, null, null, null, null, augment, Instance of 'SimpleType', get, getter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, get, getter)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(get)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                  listener: handleIdentifier(getter, methodDeclaration)
+                parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(=>)
+                parseGetterOrFormalParameters(getter, getter, true, MemberKind.NonStaticMethod)
+                  listener: handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
+                parseInitializersOpt(getter)
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt(getter)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                inPlainSync()
+                parseFunctionBody(getter, false, true)
+                  parseExpressionFunctionBody(=>, false)
+                    parseExpression(=>)
+                      parsePrecedenceExpression(=>, 1, true)
+                        parseUnaryExpression(=>, true)
+                          parsePrimary(=>, expression)
+                            parseLiteralInt(=>)
+                              listener: handleLiteralInt(0)
+                    ensureSemicolon(0)
+                    listener: handleExpressionFunctionBody(=>, ;)
+                    inGenerator()
+                listener: endClassMethod(get, augment, =>, null, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseMethod(;, null, null, null, null, null, null, augment, Instance of 'NoType', set, setter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, set, setter)
+                listener: handleNoType(augment)
+                ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                  listener: handleIdentifier(setter, methodDeclaration)
+                parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(setter, setter, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(setter, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(value)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleNoType(()
+                        ensureIdentifier((, formalParameterDeclaration)
+                          listener: handleIdentifier(value, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(set, augment, (, null, })
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseMethod(}, null, null, null, null, null, null, augment, Instance of 'VoidType', set, setter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, set, setter)
+                listener: handleVoidKeyword(void)
+                ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                  listener: handleIdentifier(setter, methodDeclaration)
+                parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(setter, setter, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(setter, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(value)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleNoType(()
+                        ensureIdentifier((, formalParameterDeclaration)
+                          listener: handleIdentifier(value, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(set, augment, (, null, })
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(}, null, augment, null, null, null, null, var, var, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, null, var, })
+                listener: handleNoType(var)
+                ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, null, var, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, null, null, null, var, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, null, final, final, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, null, final, ;)
+                listener: handleNoType(final)
+                ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, null, final, DeclarationKind.Class, Class)
+                  listener: beginFieldInitializer(=)
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(0)
+                  listener: endFieldInitializer(=, ;)
+                listener: endClassFields(null, augment, null, null, null, null, final, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, null, const, const, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, null, const, ;)
+                listener: handleNoType(const)
+                ensureIdentifierPotentiallyRecovered(const, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, null, const, DeclarationKind.Class, Class)
+                  listener: beginFieldInitializer(=)
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(0)
+                  listener: endFieldInitializer(=, ;)
+                listener: endClassFields(null, augment, null, null, null, null, const, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, null, null, augment, Instance of 'SimpleType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, null, null, ;)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(field)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, null, null, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, null, null, null, null, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, late, var, var, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, late, var, ;)
+                listener: handleNoType(var)
+                ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, var, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, null, null, late, var, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, late, final, final, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, late, final, ;)
+                listener: handleNoType(final)
+                ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, final, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, null, null, late, final, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, late, null, late, Instance of 'SimpleType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, late, null, ;)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(field)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, null, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, null, null, late, null, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod(;, null, null, static, null, null, null, static, Instance of 'NoType', null, method, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, null, method)
+                listener: handleNoType(static)
+                ensureIdentifierPotentiallyRecovered(static, methodDeclaration, false)
+                  listener: handleIdentifier(method, methodDeclaration)
+                parseQualifiedRestOpt(method, methodDeclarationContinuation)
+                parseMethodTypeVar(method)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(method, method, false, MemberKind.StaticMethod)
+                  parseFormalParameters(method, MemberKind.StaticMethod)
+                    parseFormalParametersRest((, MemberKind.StaticMethod)
+                      listener: beginFormalParameters((, MemberKind.StaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.StaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                parseFunctionBody(), false, false)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(null, augment, (, null, })
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseMethod(}, null, null, static, null, null, null, static, Instance of 'VoidType', null, method, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, null, method)
+                listener: handleVoidKeyword(void)
+                ensureIdentifierPotentiallyRecovered(void, methodDeclaration, false)
+                  listener: handleIdentifier(method, methodDeclaration)
+                parseQualifiedRestOpt(method, methodDeclarationContinuation)
+                parseMethodTypeVar(method)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(method, method, false, MemberKind.StaticMethod)
+                  parseFormalParameters(method, MemberKind.StaticMethod)
+                    parseFormalParametersRest((, MemberKind.StaticMethod)
+                      listener: beginFormalParameters((, MemberKind.StaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.StaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                parseFunctionBody(), false, false)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(null, augment, (, null, })
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseMethod(}, null, null, static, null, null, null, static, Instance of 'NoType', get, getter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, get, getter)
+                listener: handleNoType(static)
+                ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                  listener: handleIdentifier(getter, methodDeclaration)
+                parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(=>)
+                parseGetterOrFormalParameters(getter, getter, true, MemberKind.StaticMethod)
+                  listener: handleNoFormalParameters(=>, MemberKind.StaticMethod)
+                parseInitializersOpt(getter)
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt(getter)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(getter, false, false)
+                  parseExpressionFunctionBody(=>, false)
+                    parseExpression(=>)
+                      parsePrecedenceExpression(=>, 1, true)
+                        parseUnaryExpression(=>, true)
+                          parsePrimary(=>, expression)
+                            parseLiteralNull(=>)
+                              listener: handleLiteralNull(null)
+                    ensureSemicolon(null)
+                    listener: handleExpressionFunctionBody(=>, ;)
+                    inGenerator()
+                listener: endClassMethod(get, augment, =>, null, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseMethod(;, null, null, static, null, null, null, static, Instance of 'SimpleType', get, getter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, get, getter)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(get)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                  listener: handleIdentifier(getter, methodDeclaration)
+                parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(=>)
+                parseGetterOrFormalParameters(getter, getter, true, MemberKind.StaticMethod)
+                  listener: handleNoFormalParameters(=>, MemberKind.StaticMethod)
+                parseInitializersOpt(getter)
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt(getter)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(getter, false, false)
+                  parseExpressionFunctionBody(=>, false)
+                    parseExpression(=>)
+                      parsePrecedenceExpression(=>, 1, true)
+                        parseUnaryExpression(=>, true)
+                          parsePrimary(=>, expression)
+                            parseLiteralInt(=>)
+                              listener: handleLiteralInt(0)
+                    ensureSemicolon(0)
+                    listener: handleExpressionFunctionBody(=>, ;)
+                    inGenerator()
+                listener: endClassMethod(get, augment, =>, null, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseMethod(;, null, null, static, null, null, null, static, Instance of 'NoType', set, setter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, set, setter)
+                listener: handleNoType(static)
+                ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                  listener: handleIdentifier(setter, methodDeclaration)
+                parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(setter, setter, false, MemberKind.StaticMethod)
+                  parseFormalParameters(setter, MemberKind.StaticMethod)
+                    parseFormalParametersRest((, MemberKind.StaticMethod)
+                      listener: beginFormalParameters((, MemberKind.StaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(value)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(value, MemberKind.StaticMethod, null, null, null)
+                        listener: handleNoType(()
+                        ensureIdentifier((, formalParameterDeclaration)
+                          listener: handleIdentifier(value, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.StaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, false)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(set, augment, (, null, })
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseMethod(}, null, null, static, null, null, null, static, Instance of 'VoidType', set, setter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, set, setter)
+                listener: handleVoidKeyword(void)
+                ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                  listener: handleIdentifier(setter, methodDeclaration)
+                parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(setter, setter, false, MemberKind.StaticMethod)
+                  parseFormalParameters(setter, MemberKind.StaticMethod)
+                    parseFormalParametersRest((, MemberKind.StaticMethod)
+                      listener: beginFormalParameters((, MemberKind.StaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(value)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(value, MemberKind.StaticMethod, null, null, null)
+                        listener: handleNoType(()
+                        ensureIdentifier((, formalParameterDeclaration)
+                          listener: handleIdentifier(value, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.StaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, false)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(set, augment, (, null, })
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(}, null, augment, null, static, null, null, var, var, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, static, null, null, var, })
+                listener: handleNoType(var)
+                ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, null, var, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, static, null, null, var, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, static, null, null, final, final, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, static, null, null, final, ;)
+                listener: handleNoType(final)
+                ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, null, final, DeclarationKind.Class, Class)
+                  listener: beginFieldInitializer(=)
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(0)
+                  listener: endFieldInitializer(=, ;)
+                listener: endClassFields(null, augment, null, static, null, null, final, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, static, null, null, const, const, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, static, null, null, const, ;)
+                listener: handleNoType(const)
+                ensureIdentifierPotentiallyRecovered(const, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, null, const, DeclarationKind.Class, Class)
+                  listener: beginFieldInitializer(=)
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(0)
+                  listener: endFieldInitializer(=, ;)
+                listener: endClassFields(null, augment, null, static, null, null, const, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, static, null, null, null, static, Instance of 'SimpleType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, static, null, null, null, ;)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(field)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, null, null, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, static, null, null, null, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, static, null, late, var, var, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, static, null, late, var, ;)
+                listener: handleNoType(var)
+                ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, var, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, static, null, late, var, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, static, null, late, final, final, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, static, null, late, final, ;)
+                listener: handleNoType(final)
+                ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, final, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, static, null, late, final, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, static, null, late, null, late, Instance of 'SimpleType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, static, null, late, null, ;)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(field)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, null, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, static, null, late, null, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 26, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(mixin)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(mixin)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, mixin, null, Instance of 'DirectiveContext')
+      parseMixin(null, mixin)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(mixin)
+        ensureIdentifier(mixin, classOrMixinDeclaration)
+          listener: handleIdentifier(Mixin, classOrMixinDeclaration)
+        listener: handleNoTypeVariables({)
+        listener: beginMixinDeclaration(null, mixin, Mixin)
+        parseMixinHeaderOpt(Mixin, mixin)
+          parseMixinOnOpt(Mixin)
+            listener: handleMixinOn(null, 0)
+          parseClassOrMixinOrEnumImplementsOpt(Mixin)
+            listener: handleImplements(null, 0)
+          listener: handleMixinHeader(mixin)
+        parseClassOrMixinOrExtensionBody(Mixin, DeclarationKind.Mixin, Mixin)
+          listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Mixin, {)
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar({)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            isReservedKeyword(()
+            parseMethod({, null, null, null, null, null, null, augment, Instance of 'NoType', null, method, DeclarationKind.Mixin, Mixin, false)
+              listener: beginMethod(DeclarationKind.Mixin, null, null, null, null, null, method)
+              listener: handleNoType(augment)
+              ensureIdentifierPotentiallyRecovered(augment, methodDeclaration, false)
+                listener: handleIdentifier(method, methodDeclaration)
+              parseQualifiedRestOpt(method, methodDeclarationContinuation)
+              parseMethodTypeVar(method)
+                listener: handleNoTypeVariables(()
+              parseGetterOrFormalParameters(method, method, false, MemberKind.NonStaticMethod)
+                parseFormalParameters(method, MemberKind.NonStaticMethod)
+                  parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                    listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                    listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+              parseInitializersOpt())
+                listener: handleNoInitializers()
+              parseAsyncModifierOpt())
+                listener: handleAsyncModifier(null, null)
+                inPlainSync()
+              inPlainSync()
+              parseFunctionBody(), false, true)
+                listener: beginBlockFunctionBody({)
+                notEofOrValue(}, })
+                listener: endBlockFunctionBody(0, {, })
+              listener: endMixinMethod(null, augment, (, null, })
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(})
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseMethod(}, null, null, null, null, null, null, augment, Instance of 'VoidType', null, method, DeclarationKind.Mixin, Mixin, false)
+              listener: beginMethod(DeclarationKind.Mixin, null, null, null, null, null, method)
+              listener: handleVoidKeyword(void)
+              ensureIdentifierPotentiallyRecovered(void, methodDeclaration, false)
+                listener: handleIdentifier(method, methodDeclaration)
+              parseQualifiedRestOpt(method, methodDeclarationContinuation)
+              parseMethodTypeVar(method)
+                listener: handleNoTypeVariables(()
+              parseGetterOrFormalParameters(method, method, false, MemberKind.NonStaticMethod)
+                parseFormalParameters(method, MemberKind.NonStaticMethod)
+                  parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                    listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                    listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+              parseInitializersOpt())
+                listener: handleNoInitializers()
+              parseAsyncModifierOpt())
+                listener: handleAsyncModifier(null, null)
+                inPlainSync()
+              inPlainSync()
+              parseFunctionBody(), false, true)
+                listener: beginBlockFunctionBody({)
+                notEofOrValue(}, })
+                listener: endBlockFunctionBody(0, {, })
+              listener: endMixinMethod(null, augment, (, null, })
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(})
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseMethod(}, null, null, null, null, null, null, augment, Instance of 'NoType', get, getter, DeclarationKind.Mixin, Mixin, false)
+              listener: beginMethod(DeclarationKind.Mixin, null, null, null, null, get, getter)
+              listener: handleNoType(augment)
+              ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                listener: handleIdentifier(getter, methodDeclaration)
+              parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+              listener: handleNoTypeVariables(=>)
+              parseGetterOrFormalParameters(getter, getter, true, MemberKind.NonStaticMethod)
+                listener: handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
+              parseInitializersOpt(getter)
+                listener: handleNoInitializers()
+              parseAsyncModifierOpt(getter)
+                listener: handleAsyncModifier(null, null)
+                inPlainSync()
+              inPlainSync()
+              inPlainSync()
+              parseFunctionBody(getter, false, true)
+                parseExpressionFunctionBody(=>, false)
+                  parseExpression(=>)
+                    parsePrecedenceExpression(=>, 1, true)
+                      parseUnaryExpression(=>, true)
+                        parsePrimary(=>, expression)
+                          parseLiteralNull(=>)
+                            listener: handleLiteralNull(null)
+                  ensureSemicolon(null)
+                  listener: handleExpressionFunctionBody(=>, ;)
+                  inGenerator()
+              listener: endMixinMethod(get, augment, =>, null, ;)
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(;)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseMethod(;, null, null, null, null, null, null, augment, Instance of 'SimpleType', get, getter, DeclarationKind.Mixin, Mixin, false)
+              listener: beginMethod(DeclarationKind.Mixin, null, null, null, null, get, getter)
+              listener: handleIdentifier(int, typeReference)
+              listener: handleNoTypeArguments(get)
+              listener: handleType(int, null)
+              ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                listener: handleIdentifier(getter, methodDeclaration)
+              parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+              listener: handleNoTypeVariables(=>)
+              parseGetterOrFormalParameters(getter, getter, true, MemberKind.NonStaticMethod)
+                listener: handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
+              parseInitializersOpt(getter)
+                listener: handleNoInitializers()
+              parseAsyncModifierOpt(getter)
+                listener: handleAsyncModifier(null, null)
+                inPlainSync()
+              inPlainSync()
+              inPlainSync()
+              parseFunctionBody(getter, false, true)
+                parseExpressionFunctionBody(=>, false)
+                  parseExpression(=>)
+                    parsePrecedenceExpression(=>, 1, true)
+                      parseUnaryExpression(=>, true)
+                        parsePrimary(=>, expression)
+                          parseLiteralInt(=>)
+                            listener: handleLiteralInt(0)
+                  ensureSemicolon(0)
+                  listener: handleExpressionFunctionBody(=>, ;)
+                  inGenerator()
+              listener: endMixinMethod(get, augment, =>, null, ;)
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(;)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseMethod(;, null, null, null, null, null, null, augment, Instance of 'NoType', set, setter, DeclarationKind.Mixin, Mixin, false)
+              listener: beginMethod(DeclarationKind.Mixin, null, null, null, null, set, setter)
+              listener: handleNoType(augment)
+              ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                listener: handleIdentifier(setter, methodDeclaration)
+              parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+              listener: handleNoTypeVariables(()
+              parseGetterOrFormalParameters(setter, setter, false, MemberKind.NonStaticMethod)
+                parseFormalParameters(setter, MemberKind.NonStaticMethod)
+                  parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                    listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                    parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      parseMetadataStar(()
+                        listener: beginMetadataStar(value)
+                        listener: endMetadataStar(0)
+                      listener: beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                      listener: handleNoType(()
+                      ensureIdentifier((, formalParameterDeclaration)
+                        listener: handleIdentifier(value, formalParameterDeclaration)
+                      listener: handleFormalParameterWithoutValue())
+                      listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                    listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+              parseInitializersOpt())
+                listener: handleNoInitializers()
+              parseAsyncModifierOpt())
+                listener: handleAsyncModifier(null, null)
+                inPlainSync()
+              inPlainSync()
+              inPlainSync()
+              parseFunctionBody(), false, true)
+                listener: beginBlockFunctionBody({)
+                notEofOrValue(}, })
+                listener: endBlockFunctionBody(0, {, })
+              listener: endMixinMethod(set, augment, (, null, })
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(})
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseMethod(}, null, null, null, null, null, null, augment, Instance of 'VoidType', set, setter, DeclarationKind.Mixin, Mixin, false)
+              listener: beginMethod(DeclarationKind.Mixin, null, null, null, null, set, setter)
+              listener: handleVoidKeyword(void)
+              ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                listener: handleIdentifier(setter, methodDeclaration)
+              parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+              listener: handleNoTypeVariables(()
+              parseGetterOrFormalParameters(setter, setter, false, MemberKind.NonStaticMethod)
+                parseFormalParameters(setter, MemberKind.NonStaticMethod)
+                  parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                    listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                    parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      parseMetadataStar(()
+                        listener: beginMetadataStar(value)
+                        listener: endMetadataStar(0)
+                      listener: beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                      listener: handleNoType(()
+                      ensureIdentifier((, formalParameterDeclaration)
+                        listener: handleIdentifier(value, formalParameterDeclaration)
+                      listener: handleFormalParameterWithoutValue())
+                      listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                    listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+              parseInitializersOpt())
+                listener: handleNoInitializers()
+              parseAsyncModifierOpt())
+                listener: handleAsyncModifier(null, null)
+                inPlainSync()
+              inPlainSync()
+              inPlainSync()
+              parseFunctionBody(), false, true)
+                listener: beginBlockFunctionBody({)
+                notEofOrValue(}, })
+                listener: endBlockFunctionBody(0, {, })
+              listener: endMixinMethod(set, augment, (, null, })
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(})
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseFields(}, null, augment, null, null, null, null, var, var, Instance of 'NoType', field, DeclarationKind.Mixin, Mixin, false)
+              listener: beginFields(DeclarationKind.Mixin, null, augment, null, null, null, null, var, })
+              listener: handleNoType(var)
+              ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                listener: handleIdentifier(field, fieldDeclaration)
+              parseFieldInitializerOpt(field, field, null, null, augment, null, var, DeclarationKind.Mixin, Mixin)
+                listener: handleNoFieldInitializer(;)
+              listener: endMixinFields(null, augment, null, null, null, null, var, 1, augment, ;)
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(;)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseFields(;, null, augment, null, null, null, null, final, final, Instance of 'NoType', field, DeclarationKind.Mixin, Mixin, false)
+              listener: beginFields(DeclarationKind.Mixin, null, augment, null, null, null, null, final, ;)
+              listener: handleNoType(final)
+              ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                listener: handleIdentifier(field, fieldDeclaration)
+              parseFieldInitializerOpt(field, field, null, null, augment, null, final, DeclarationKind.Mixin, Mixin)
+                listener: beginFieldInitializer(=)
+                parseExpression(=)
+                  parsePrecedenceExpression(=, 1, true)
+                    parseUnaryExpression(=, true)
+                      parsePrimary(=, expression)
+                        parseLiteralInt(=)
+                          listener: handleLiteralInt(0)
+                listener: endFieldInitializer(=, ;)
+              listener: endMixinFields(null, augment, null, null, null, null, final, 1, augment, ;)
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(;)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseFields(;, null, augment, null, null, null, null, const, const, Instance of 'NoType', field, DeclarationKind.Mixin, Mixin, false)
+              listener: beginFields(DeclarationKind.Mixin, null, augment, null, null, null, null, const, ;)
+              listener: handleNoType(const)
+              ensureIdentifierPotentiallyRecovered(const, fieldDeclaration, false)
+                listener: handleIdentifier(field, fieldDeclaration)
+              parseFieldInitializerOpt(field, field, null, null, augment, null, const, DeclarationKind.Mixin, Mixin)
+                listener: beginFieldInitializer(=)
+                parseExpression(=)
+                  parsePrecedenceExpression(=, 1, true)
+                    parseUnaryExpression(=, true)
+                      parsePrimary(=, expression)
+                        parseLiteralInt(=)
+                          listener: handleLiteralInt(0)
+                listener: endFieldInitializer(=, ;)
+              listener: endMixinFields(null, augment, null, null, null, null, const, 1, augment, ;)
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(;)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseFields(;, null, augment, null, null, null, null, null, augment, Instance of 'SimpleType', field, DeclarationKind.Mixin, Mixin, false)
+              listener: beginFields(DeclarationKind.Mixin, null, augment, null, null, null, null, null, ;)
+              listener: handleIdentifier(int, typeReference)
+              listener: handleNoTypeArguments(field)
+              listener: handleType(int, null)
+              ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                listener: handleIdentifier(field, fieldDeclaration)
+              parseFieldInitializerOpt(field, field, null, null, augment, null, null, DeclarationKind.Mixin, Mixin)
+                listener: handleNoFieldInitializer(;)
+              listener: endMixinFields(null, augment, null, null, null, null, null, 1, augment, ;)
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(;)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseFields(;, null, augment, null, null, null, late, var, var, Instance of 'NoType', field, DeclarationKind.Mixin, Mixin, false)
+              listener: beginFields(DeclarationKind.Mixin, null, augment, null, null, null, late, var, ;)
+              listener: handleNoType(var)
+              ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                listener: handleIdentifier(field, fieldDeclaration)
+              parseFieldInitializerOpt(field, field, late, null, augment, null, var, DeclarationKind.Mixin, Mixin)
+                listener: handleNoFieldInitializer(;)
+              listener: endMixinFields(null, augment, null, null, null, late, var, 1, augment, ;)
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(;)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseFields(;, null, augment, null, null, null, late, final, final, Instance of 'NoType', field, DeclarationKind.Mixin, Mixin, false)
+              listener: beginFields(DeclarationKind.Mixin, null, augment, null, null, null, late, final, ;)
+              listener: handleNoType(final)
+              ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                listener: handleIdentifier(field, fieldDeclaration)
+              parseFieldInitializerOpt(field, field, late, null, augment, null, final, DeclarationKind.Mixin, Mixin)
+                listener: handleNoFieldInitializer(;)
+              listener: endMixinFields(null, augment, null, null, null, late, final, 1, augment, ;)
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(;)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseFields(;, null, augment, null, null, null, late, null, late, Instance of 'SimpleType', field, DeclarationKind.Mixin, Mixin, false)
+              listener: beginFields(DeclarationKind.Mixin, null, augment, null, null, null, late, null, ;)
+              listener: handleIdentifier(int, typeReference)
+              listener: handleNoTypeArguments(field)
+              listener: handleType(int, null)
+              ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                listener: handleIdentifier(field, fieldDeclaration)
+              parseFieldInitializerOpt(field, field, late, null, augment, null, null, DeclarationKind.Mixin, Mixin)
+                listener: handleNoFieldInitializer(;)
+              listener: endMixinFields(null, augment, null, null, null, late, null, 1, augment, ;)
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(;)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            isReservedKeyword(()
+            parseMethod(;, null, null, static, null, null, null, static, Instance of 'NoType', null, method, DeclarationKind.Mixin, Mixin, false)
+              listener: beginMethod(DeclarationKind.Mixin, null, static, null, null, null, method)
+              listener: handleNoType(static)
+              ensureIdentifierPotentiallyRecovered(static, methodDeclaration, false)
+                listener: handleIdentifier(method, methodDeclaration)
+              parseQualifiedRestOpt(method, methodDeclarationContinuation)
+              parseMethodTypeVar(method)
+                listener: handleNoTypeVariables(()
+              parseGetterOrFormalParameters(method, method, false, MemberKind.StaticMethod)
+                parseFormalParameters(method, MemberKind.StaticMethod)
+                  parseFormalParametersRest((, MemberKind.StaticMethod)
+                    listener: beginFormalParameters((, MemberKind.StaticMethod)
+                    listener: endFormalParameters(0, (, ), MemberKind.StaticMethod)
+              parseInitializersOpt())
+                listener: handleNoInitializers()
+              parseAsyncModifierOpt())
+                listener: handleAsyncModifier(null, null)
+                inPlainSync()
+              parseFunctionBody(), false, false)
+                listener: beginBlockFunctionBody({)
+                notEofOrValue(}, })
+                listener: endBlockFunctionBody(0, {, })
+              listener: endMixinMethod(null, augment, (, null, })
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(})
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseMethod(}, null, null, static, null, null, null, static, Instance of 'VoidType', null, method, DeclarationKind.Mixin, Mixin, false)
+              listener: beginMethod(DeclarationKind.Mixin, null, static, null, null, null, method)
+              listener: handleVoidKeyword(void)
+              ensureIdentifierPotentiallyRecovered(void, methodDeclaration, false)
+                listener: handleIdentifier(method, methodDeclaration)
+              parseQualifiedRestOpt(method, methodDeclarationContinuation)
+              parseMethodTypeVar(method)
+                listener: handleNoTypeVariables(()
+              parseGetterOrFormalParameters(method, method, false, MemberKind.StaticMethod)
+                parseFormalParameters(method, MemberKind.StaticMethod)
+                  parseFormalParametersRest((, MemberKind.StaticMethod)
+                    listener: beginFormalParameters((, MemberKind.StaticMethod)
+                    listener: endFormalParameters(0, (, ), MemberKind.StaticMethod)
+              parseInitializersOpt())
+                listener: handleNoInitializers()
+              parseAsyncModifierOpt())
+                listener: handleAsyncModifier(null, null)
+                inPlainSync()
+              parseFunctionBody(), false, false)
+                listener: beginBlockFunctionBody({)
+                notEofOrValue(}, })
+                listener: endBlockFunctionBody(0, {, })
+              listener: endMixinMethod(null, augment, (, null, })
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(})
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseMethod(}, null, null, static, null, null, null, static, Instance of 'NoType', get, getter, DeclarationKind.Mixin, Mixin, false)
+              listener: beginMethod(DeclarationKind.Mixin, null, static, null, null, get, getter)
+              listener: handleNoType(static)
+              ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                listener: handleIdentifier(getter, methodDeclaration)
+              parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+              listener: handleNoTypeVariables(=>)
+              parseGetterOrFormalParameters(getter, getter, true, MemberKind.StaticMethod)
+                listener: handleNoFormalParameters(=>, MemberKind.StaticMethod)
+              parseInitializersOpt(getter)
+                listener: handleNoInitializers()
+              parseAsyncModifierOpt(getter)
+                listener: handleAsyncModifier(null, null)
+                inPlainSync()
+              inPlainSync()
+              parseFunctionBody(getter, false, false)
+                parseExpressionFunctionBody(=>, false)
+                  parseExpression(=>)
+                    parsePrecedenceExpression(=>, 1, true)
+                      parseUnaryExpression(=>, true)
+                        parsePrimary(=>, expression)
+                          parseLiteralNull(=>)
+                            listener: handleLiteralNull(null)
+                  ensureSemicolon(null)
+                  listener: handleExpressionFunctionBody(=>, ;)
+                  inGenerator()
+              listener: endMixinMethod(get, augment, =>, null, ;)
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(;)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseMethod(;, null, null, static, null, null, null, static, Instance of 'SimpleType', get, getter, DeclarationKind.Mixin, Mixin, false)
+              listener: beginMethod(DeclarationKind.Mixin, null, static, null, null, get, getter)
+              listener: handleIdentifier(int, typeReference)
+              listener: handleNoTypeArguments(get)
+              listener: handleType(int, null)
+              ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                listener: handleIdentifier(getter, methodDeclaration)
+              parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+              listener: handleNoTypeVariables(=>)
+              parseGetterOrFormalParameters(getter, getter, true, MemberKind.StaticMethod)
+                listener: handleNoFormalParameters(=>, MemberKind.StaticMethod)
+              parseInitializersOpt(getter)
+                listener: handleNoInitializers()
+              parseAsyncModifierOpt(getter)
+                listener: handleAsyncModifier(null, null)
+                inPlainSync()
+              inPlainSync()
+              parseFunctionBody(getter, false, false)
+                parseExpressionFunctionBody(=>, false)
+                  parseExpression(=>)
+                    parsePrecedenceExpression(=>, 1, true)
+                      parseUnaryExpression(=>, true)
+                        parsePrimary(=>, expression)
+                          parseLiteralInt(=>)
+                            listener: handleLiteralInt(0)
+                  ensureSemicolon(0)
+                  listener: handleExpressionFunctionBody(=>, ;)
+                  inGenerator()
+              listener: endMixinMethod(get, augment, =>, null, ;)
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(;)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseMethod(;, null, null, static, null, null, null, static, Instance of 'NoType', set, setter, DeclarationKind.Mixin, Mixin, false)
+              listener: beginMethod(DeclarationKind.Mixin, null, static, null, null, set, setter)
+              listener: handleNoType(static)
+              ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                listener: handleIdentifier(setter, methodDeclaration)
+              parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+              listener: handleNoTypeVariables(()
+              parseGetterOrFormalParameters(setter, setter, false, MemberKind.StaticMethod)
+                parseFormalParameters(setter, MemberKind.StaticMethod)
+                  parseFormalParametersRest((, MemberKind.StaticMethod)
+                    listener: beginFormalParameters((, MemberKind.StaticMethod)
+                    parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+                      parseMetadataStar(()
+                        listener: beginMetadataStar(value)
+                        listener: endMetadataStar(0)
+                      listener: beginFormalParameter(value, MemberKind.StaticMethod, null, null, null)
+                      listener: handleNoType(()
+                      ensureIdentifier((, formalParameterDeclaration)
+                        listener: handleIdentifier(value, formalParameterDeclaration)
+                      listener: handleFormalParameterWithoutValue())
+                      listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+                    listener: endFormalParameters(1, (, ), MemberKind.StaticMethod)
+              parseInitializersOpt())
+                listener: handleNoInitializers()
+              parseAsyncModifierOpt())
+                listener: handleAsyncModifier(null, null)
+                inPlainSync()
+              inPlainSync()
+              parseFunctionBody(), false, false)
+                listener: beginBlockFunctionBody({)
+                notEofOrValue(}, })
+                listener: endBlockFunctionBody(0, {, })
+              listener: endMixinMethod(set, augment, (, null, })
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(})
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseMethod(}, null, null, static, null, null, null, static, Instance of 'VoidType', set, setter, DeclarationKind.Mixin, Mixin, false)
+              listener: beginMethod(DeclarationKind.Mixin, null, static, null, null, set, setter)
+              listener: handleVoidKeyword(void)
+              ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                listener: handleIdentifier(setter, methodDeclaration)
+              parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+              listener: handleNoTypeVariables(()
+              parseGetterOrFormalParameters(setter, setter, false, MemberKind.StaticMethod)
+                parseFormalParameters(setter, MemberKind.StaticMethod)
+                  parseFormalParametersRest((, MemberKind.StaticMethod)
+                    listener: beginFormalParameters((, MemberKind.StaticMethod)
+                    parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+                      parseMetadataStar(()
+                        listener: beginMetadataStar(value)
+                        listener: endMetadataStar(0)
+                      listener: beginFormalParameter(value, MemberKind.StaticMethod, null, null, null)
+                      listener: handleNoType(()
+                      ensureIdentifier((, formalParameterDeclaration)
+                        listener: handleIdentifier(value, formalParameterDeclaration)
+                      listener: handleFormalParameterWithoutValue())
+                      listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+                    listener: endFormalParameters(1, (, ), MemberKind.StaticMethod)
+              parseInitializersOpt())
+                listener: handleNoInitializers()
+              parseAsyncModifierOpt())
+                listener: handleAsyncModifier(null, null)
+                inPlainSync()
+              inPlainSync()
+              parseFunctionBody(), false, false)
+                listener: beginBlockFunctionBody({)
+                notEofOrValue(}, })
+                listener: endBlockFunctionBody(0, {, })
+              listener: endMixinMethod(set, augment, (, null, })
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(})
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseFields(}, null, augment, null, static, null, null, var, var, Instance of 'NoType', field, DeclarationKind.Mixin, Mixin, false)
+              listener: beginFields(DeclarationKind.Mixin, null, augment, null, static, null, null, var, })
+              listener: handleNoType(var)
+              ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                listener: handleIdentifier(field, fieldDeclaration)
+              parseFieldInitializerOpt(field, field, null, null, augment, null, var, DeclarationKind.Mixin, Mixin)
+                listener: handleNoFieldInitializer(;)
+              listener: endMixinFields(null, augment, null, static, null, null, var, 1, augment, ;)
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(;)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseFields(;, null, augment, null, static, null, null, final, final, Instance of 'NoType', field, DeclarationKind.Mixin, Mixin, false)
+              listener: beginFields(DeclarationKind.Mixin, null, augment, null, static, null, null, final, ;)
+              listener: handleNoType(final)
+              ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                listener: handleIdentifier(field, fieldDeclaration)
+              parseFieldInitializerOpt(field, field, null, null, augment, null, final, DeclarationKind.Mixin, Mixin)
+                listener: beginFieldInitializer(=)
+                parseExpression(=)
+                  parsePrecedenceExpression(=, 1, true)
+                    parseUnaryExpression(=, true)
+                      parsePrimary(=, expression)
+                        parseLiteralInt(=)
+                          listener: handleLiteralInt(0)
+                listener: endFieldInitializer(=, ;)
+              listener: endMixinFields(null, augment, null, static, null, null, final, 1, augment, ;)
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(;)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseFields(;, null, augment, null, static, null, null, const, const, Instance of 'NoType', field, DeclarationKind.Mixin, Mixin, false)
+              listener: beginFields(DeclarationKind.Mixin, null, augment, null, static, null, null, const, ;)
+              listener: handleNoType(const)
+              ensureIdentifierPotentiallyRecovered(const, fieldDeclaration, false)
+                listener: handleIdentifier(field, fieldDeclaration)
+              parseFieldInitializerOpt(field, field, null, null, augment, null, const, DeclarationKind.Mixin, Mixin)
+                listener: beginFieldInitializer(=)
+                parseExpression(=)
+                  parsePrecedenceExpression(=, 1, true)
+                    parseUnaryExpression(=, true)
+                      parsePrimary(=, expression)
+                        parseLiteralInt(=)
+                          listener: handleLiteralInt(0)
+                listener: endFieldInitializer(=, ;)
+              listener: endMixinFields(null, augment, null, static, null, null, const, 1, augment, ;)
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(;)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseFields(;, null, augment, null, static, null, null, null, static, Instance of 'SimpleType', field, DeclarationKind.Mixin, Mixin, false)
+              listener: beginFields(DeclarationKind.Mixin, null, augment, null, static, null, null, null, ;)
+              listener: handleIdentifier(int, typeReference)
+              listener: handleNoTypeArguments(field)
+              listener: handleType(int, null)
+              ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                listener: handleIdentifier(field, fieldDeclaration)
+              parseFieldInitializerOpt(field, field, null, null, augment, null, null, DeclarationKind.Mixin, Mixin)
+                listener: handleNoFieldInitializer(;)
+              listener: endMixinFields(null, augment, null, static, null, null, null, 1, augment, ;)
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(;)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseFields(;, null, augment, null, static, null, late, var, var, Instance of 'NoType', field, DeclarationKind.Mixin, Mixin, false)
+              listener: beginFields(DeclarationKind.Mixin, null, augment, null, static, null, late, var, ;)
+              listener: handleNoType(var)
+              ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                listener: handleIdentifier(field, fieldDeclaration)
+              parseFieldInitializerOpt(field, field, late, null, augment, null, var, DeclarationKind.Mixin, Mixin)
+                listener: handleNoFieldInitializer(;)
+              listener: endMixinFields(null, augment, null, static, null, late, var, 1, augment, ;)
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(;)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseFields(;, null, augment, null, static, null, late, final, final, Instance of 'NoType', field, DeclarationKind.Mixin, Mixin, false)
+              listener: beginFields(DeclarationKind.Mixin, null, augment, null, static, null, late, final, ;)
+              listener: handleNoType(final)
+              ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                listener: handleIdentifier(field, fieldDeclaration)
+              parseFieldInitializerOpt(field, field, late, null, augment, null, final, DeclarationKind.Mixin, Mixin)
+                listener: handleNoFieldInitializer(;)
+              listener: endMixinFields(null, augment, null, static, null, late, final, 1, augment, ;)
+            listener: endMember()
+          notEofOrValue(}, augment)
+          parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Mixin, Mixin)
+            parseMetadataStar(;)
+              listener: beginMetadataStar(augment)
+              listener: endMetadataStar(0)
+            listener: beginMember()
+            parseFields(;, null, augment, null, static, null, late, null, late, Instance of 'SimpleType', field, DeclarationKind.Mixin, Mixin, false)
+              listener: beginFields(DeclarationKind.Mixin, null, augment, null, static, null, late, null, ;)
+              listener: handleIdentifier(int, typeReference)
+              listener: handleNoTypeArguments(field)
+              listener: handleType(int, null)
+              ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                listener: handleIdentifier(field, fieldDeclaration)
+              parseFieldInitializerOpt(field, field, late, null, augment, null, null, DeclarationKind.Mixin, Mixin)
+                listener: handleNoFieldInitializer(;)
+              listener: endMixinFields(null, augment, null, static, null, late, null, 1, augment, ;)
+            listener: endMember()
+          notEofOrValue(}, })
+          listener: endClassOrMixinOrExtensionBody(DeclarationKind.Mixin, 26, {, })
+        listener: endMixinDeclaration(mixin, })
+  listener: endTopLevelDeclaration()
+  reportAllErrorTokens(class)
+  listener: endCompilationUnit(2, )
diff --git a/pkg/front_end/parser_testcases/augmentation/member_declarations.dart.parser.expect b/pkg/front_end/parser_testcases/augmentation/member_declarations.dart.parser.expect
new file mode 100644
index 0000000..abf7b68
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/member_declarations.dart.parser.expect
@@ -0,0 +1,123 @@
+class Class {
+augment method() {}
+augment void method() {}
+augment get getter => null;
+augment int get getter => 0;
+augment set setter(value) {}
+augment void set setter(value) {}
+augment var field;
+augment final field = 0;
+augment const field = 0;
+augment int field;
+augment late var field;
+augment late final field;
+augment late int field;
+
+augment static method() {}
+augment static void method() {}
+augment static get getter => null;
+augment static int get getter => 0;
+augment static set setter(value) {}
+augment static void set setter(value) {}
+augment static var field;
+augment static final field = 0;
+augment static const field = 0;
+augment static int field;
+augment static late var field;
+augment static late final field;
+augment static late int field;
+}
+
+mixin Mixin {
+augment method() {}
+augment void method() {}
+augment get getter => null;
+augment int get getter => 0;
+augment set setter(value) {}
+augment void set setter(value) {}
+augment var field;
+augment final field = 0;
+augment const field = 0;
+augment int field;
+augment late var field;
+augment late final field;
+augment late int field;
+
+augment static method() {}
+augment static void method() {}
+augment static get getter => null;
+augment static int get getter => 0;
+augment static set setter(value) {}
+augment static void set setter(value) {}
+augment static var field;
+augment static final field = 0;
+augment static const field = 0;
+augment static int field;
+augment static late var field;
+augment static late final field;
+augment static late int field;
+}
+
+
+
+class[KeywordToken] Class[StringToken] {[BeginToken]
+augment[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+augment[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] final[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] const[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] static[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] static[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] static[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] static[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] static[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] final[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] const[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+}[SimpleToken]
+
+mixin[KeywordToken] Mixin[StringToken] {[BeginToken]
+augment[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+augment[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] final[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] const[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] static[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] static[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] static[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] static[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] static[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] final[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] const[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+}[SimpleToken]
+
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/augmentation/member_declarations.dart.scanner.expect b/pkg/front_end/parser_testcases/augmentation/member_declarations.dart.scanner.expect
new file mode 100644
index 0000000..abf7b68
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/member_declarations.dart.scanner.expect
@@ -0,0 +1,123 @@
+class Class {
+augment method() {}
+augment void method() {}
+augment get getter => null;
+augment int get getter => 0;
+augment set setter(value) {}
+augment void set setter(value) {}
+augment var field;
+augment final field = 0;
+augment const field = 0;
+augment int field;
+augment late var field;
+augment late final field;
+augment late int field;
+
+augment static method() {}
+augment static void method() {}
+augment static get getter => null;
+augment static int get getter => 0;
+augment static set setter(value) {}
+augment static void set setter(value) {}
+augment static var field;
+augment static final field = 0;
+augment static const field = 0;
+augment static int field;
+augment static late var field;
+augment static late final field;
+augment static late int field;
+}
+
+mixin Mixin {
+augment method() {}
+augment void method() {}
+augment get getter => null;
+augment int get getter => 0;
+augment set setter(value) {}
+augment void set setter(value) {}
+augment var field;
+augment final field = 0;
+augment const field = 0;
+augment int field;
+augment late var field;
+augment late final field;
+augment late int field;
+
+augment static method() {}
+augment static void method() {}
+augment static get getter => null;
+augment static int get getter => 0;
+augment static set setter(value) {}
+augment static void set setter(value) {}
+augment static var field;
+augment static final field = 0;
+augment static const field = 0;
+augment static int field;
+augment static late var field;
+augment static late final field;
+augment static late int field;
+}
+
+
+
+class[KeywordToken] Class[StringToken] {[BeginToken]
+augment[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+augment[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] final[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] const[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] static[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] static[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] static[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] static[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] static[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] final[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] const[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+}[SimpleToken]
+
+mixin[KeywordToken] Mixin[StringToken] {[BeginToken]
+augment[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+augment[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] final[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] const[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] static[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] static[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] static[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] static[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] static[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] final[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] const[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] static[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+}[SimpleToken]
+
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/augmentation/member_errors.dart b/pkg/front_end/parser_testcases/augmentation/member_errors.dart
new file mode 100644
index 0000000..94d62a9
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/member_errors.dart
@@ -0,0 +1,92 @@
+class Class {
+  augment augment method() {}
+  augment external method();
+  external augment method();
+
+  augment augment void method() {}
+  augment external void method();
+  external augment void method();
+
+  augment augment get getter => null;
+  augment external get getter;
+  external augment get getter;
+
+  augment augment int get getter => 0;
+  augment external int get getter;
+  external augment int get getter;
+
+  augment augment set setter(value) {}
+  augment external set setter(value);
+  external augment set setter(value);
+
+  augment augment void set setter(value) {}
+  augment external void set setter(value);
+  external augment void set setter(value);
+
+  augment augment var field;
+  augment external var field;
+  external augment var field;
+
+  augment augment final field = 0;
+  augment external final field;
+  external augment final field;
+
+  augment augment const field = 0;
+  augment external const field;
+  external augment const field;
+
+  augment augment int field;
+  augment external int field;
+  external augment int field;
+
+  augment augment late var field;
+  augment late var field;
+  augment late var field;
+
+  augment augment late final field;
+  augment late final field;
+  augment late final field;
+
+  augment augment late int field;
+  augment late int field;
+  augment late int field;
+
+  augment augment static method() {}
+  static augment method() {}
+
+  augment augment static void method() {}
+  static augment void method() {}
+
+  augment augment static get getter => null;
+  static augment get getter => null;
+
+  augment augment static int get getter => 0;
+  static augment int get getter => 0;
+
+  augment augment static set setter(value) {}
+  static augment set setter(value) {}
+
+  augment augment static void set setter(value) {}
+  static augment void set setter(value) {}
+
+  augment augment static var field;
+  static augment var field;
+
+  augment augment static final field = 0;
+  static augment final field = 0;
+
+  augment augment static const field = 0;
+  static augment const field = 0;
+
+  augment augment static int field;
+  static augment int field;
+
+  augment augment static late var field;
+  static augment late var field;
+
+  augment augment static late final field;
+  static augment late final field;
+
+  augment augment static late int field;
+  static augment late int field;
+}
diff --git a/pkg/front_end/parser_testcases/augmentation/member_errors.dart.expect b/pkg/front_end/parser_testcases/augmentation/member_errors.dart.expect
new file mode 100644
index 0000000..229e328
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/member_errors.dart.expect
@@ -0,0 +1,1179 @@
+Problems reported:
+
+parser/augmentation/member_errors:2:11: The modifier 'augment' was already specified.
+  augment augment method() {}
+          ^^^^^^^
+
+parser/augmentation/member_errors:3:11: Members can't be declared to be both 'external' and 'augment'.
+  augment external method();
+          ^^^^^^^^
+
+parser/augmentation/member_errors:4:12: Members can't be declared to be both 'augment' and 'external'.
+  external augment method();
+           ^^^^^^^
+
+parser/augmentation/member_errors:6:11: The modifier 'augment' was already specified.
+  augment augment void method() {}
+          ^^^^^^^
+
+parser/augmentation/member_errors:7:11: Members can't be declared to be both 'external' and 'augment'.
+  augment external void method();
+          ^^^^^^^^
+
+parser/augmentation/member_errors:8:12: Members can't be declared to be both 'augment' and 'external'.
+  external augment void method();
+           ^^^^^^^
+
+parser/augmentation/member_errors:10:11: The modifier 'augment' was already specified.
+  augment augment get getter => null;
+          ^^^^^^^
+
+parser/augmentation/member_errors:11:11: Members can't be declared to be both 'external' and 'augment'.
+  augment external get getter;
+          ^^^^^^^^
+
+parser/augmentation/member_errors:12:12: Members can't be declared to be both 'augment' and 'external'.
+  external augment get getter;
+           ^^^^^^^
+
+parser/augmentation/member_errors:14:11: The modifier 'augment' was already specified.
+  augment augment int get getter => 0;
+          ^^^^^^^
+
+parser/augmentation/member_errors:15:11: Members can't be declared to be both 'external' and 'augment'.
+  augment external int get getter;
+          ^^^^^^^^
+
+parser/augmentation/member_errors:16:12: Members can't be declared to be both 'augment' and 'external'.
+  external augment int get getter;
+           ^^^^^^^
+
+parser/augmentation/member_errors:18:11: The modifier 'augment' was already specified.
+  augment augment set setter(value) {}
+          ^^^^^^^
+
+parser/augmentation/member_errors:19:11: Members can't be declared to be both 'external' and 'augment'.
+  augment external set setter(value);
+          ^^^^^^^^
+
+parser/augmentation/member_errors:20:12: Members can't be declared to be both 'augment' and 'external'.
+  external augment set setter(value);
+           ^^^^^^^
+
+parser/augmentation/member_errors:22:11: The modifier 'augment' was already specified.
+  augment augment void set setter(value) {}
+          ^^^^^^^
+
+parser/augmentation/member_errors:23:11: Members can't be declared to be both 'external' and 'augment'.
+  augment external void set setter(value);
+          ^^^^^^^^
+
+parser/augmentation/member_errors:24:12: Members can't be declared to be both 'augment' and 'external'.
+  external augment void set setter(value);
+           ^^^^^^^
+
+parser/augmentation/member_errors:26:11: The modifier 'augment' was already specified.
+  augment augment var field;
+          ^^^^^^^
+
+parser/augmentation/member_errors:27:11: Members can't be declared to be both 'external' and 'augment'.
+  augment external var field;
+          ^^^^^^^^
+
+parser/augmentation/member_errors:28:12: Members can't be declared to be both 'augment' and 'external'.
+  external augment var field;
+           ^^^^^^^
+
+parser/augmentation/member_errors:30:11: The modifier 'augment' was already specified.
+  augment augment final field = 0;
+          ^^^^^^^
+
+parser/augmentation/member_errors:31:11: Members can't be declared to be both 'external' and 'augment'.
+  augment external final field;
+          ^^^^^^^^
+
+parser/augmentation/member_errors:32:12: Members can't be declared to be both 'augment' and 'external'.
+  external augment final field;
+           ^^^^^^^
+
+parser/augmentation/member_errors:34:11: The modifier 'augment' was already specified.
+  augment augment const field = 0;
+          ^^^^^^^
+
+parser/augmentation/member_errors:35:11: Members can't be declared to be both 'external' and 'augment'.
+  augment external const field;
+          ^^^^^^^^
+
+parser/augmentation/member_errors:35:26: The const variable 'field' must be initialized.
+  augment external const field;
+                         ^^^^^
+
+parser/augmentation/member_errors:36:12: Members can't be declared to be both 'augment' and 'external'.
+  external augment const field;
+           ^^^^^^^
+
+parser/augmentation/member_errors:36:26: The const variable 'field' must be initialized.
+  external augment const field;
+                         ^^^^^
+
+parser/augmentation/member_errors:38:11: The modifier 'augment' was already specified.
+  augment augment int field;
+          ^^^^^^^
+
+parser/augmentation/member_errors:39:11: Members can't be declared to be both 'external' and 'augment'.
+  augment external int field;
+          ^^^^^^^^
+
+parser/augmentation/member_errors:40:12: Members can't be declared to be both 'augment' and 'external'.
+  external augment int field;
+           ^^^^^^^
+
+parser/augmentation/member_errors:42:11: The modifier 'augment' was already specified.
+  augment augment late var field;
+          ^^^^^^^
+
+parser/augmentation/member_errors:46:11: The modifier 'augment' was already specified.
+  augment augment late final field;
+          ^^^^^^^
+
+parser/augmentation/member_errors:50:11: The modifier 'augment' was already specified.
+  augment augment late int field;
+          ^^^^^^^
+
+parser/augmentation/member_errors:54:11: The modifier 'augment' was already specified.
+  augment augment static method() {}
+          ^^^^^^^
+
+parser/augmentation/member_errors:55:10: The modifier 'augment' should be before the modifier 'static'.
+  static augment method() {}
+         ^^^^^^^
+
+parser/augmentation/member_errors:57:11: The modifier 'augment' was already specified.
+  augment augment static void method() {}
+          ^^^^^^^
+
+parser/augmentation/member_errors:58:10: The modifier 'augment' should be before the modifier 'static'.
+  static augment void method() {}
+         ^^^^^^^
+
+parser/augmentation/member_errors:60:11: The modifier 'augment' was already specified.
+  augment augment static get getter => null;
+          ^^^^^^^
+
+parser/augmentation/member_errors:61:10: The modifier 'augment' should be before the modifier 'static'.
+  static augment get getter => null;
+         ^^^^^^^
+
+parser/augmentation/member_errors:63:11: The modifier 'augment' was already specified.
+  augment augment static int get getter => 0;
+          ^^^^^^^
+
+parser/augmentation/member_errors:64:10: The modifier 'augment' should be before the modifier 'static'.
+  static augment int get getter => 0;
+         ^^^^^^^
+
+parser/augmentation/member_errors:66:11: The modifier 'augment' was already specified.
+  augment augment static set setter(value) {}
+          ^^^^^^^
+
+parser/augmentation/member_errors:67:10: The modifier 'augment' should be before the modifier 'static'.
+  static augment set setter(value) {}
+         ^^^^^^^
+
+parser/augmentation/member_errors:69:11: The modifier 'augment' was already specified.
+  augment augment static void set setter(value) {}
+          ^^^^^^^
+
+parser/augmentation/member_errors:70:10: The modifier 'augment' should be before the modifier 'static'.
+  static augment void set setter(value) {}
+         ^^^^^^^
+
+parser/augmentation/member_errors:72:11: The modifier 'augment' was already specified.
+  augment augment static var field;
+          ^^^^^^^
+
+parser/augmentation/member_errors:73:10: The modifier 'augment' should be before the modifier 'static'.
+  static augment var field;
+         ^^^^^^^
+
+parser/augmentation/member_errors:75:11: The modifier 'augment' was already specified.
+  augment augment static final field = 0;
+          ^^^^^^^
+
+parser/augmentation/member_errors:76:10: The modifier 'augment' should be before the modifier 'static'.
+  static augment final field = 0;
+         ^^^^^^^
+
+parser/augmentation/member_errors:78:11: The modifier 'augment' was already specified.
+  augment augment static const field = 0;
+          ^^^^^^^
+
+parser/augmentation/member_errors:79:10: The modifier 'augment' should be before the modifier 'static'.
+  static augment const field = 0;
+         ^^^^^^^
+
+parser/augmentation/member_errors:81:11: The modifier 'augment' was already specified.
+  augment augment static int field;
+          ^^^^^^^
+
+parser/augmentation/member_errors:82:10: The modifier 'augment' should be before the modifier 'static'.
+  static augment int field;
+         ^^^^^^^
+
+parser/augmentation/member_errors:84:11: The modifier 'augment' was already specified.
+  augment augment static late var field;
+          ^^^^^^^
+
+parser/augmentation/member_errors:85:10: The modifier 'augment' should be before the modifier 'static'.
+  static augment late var field;
+         ^^^^^^^
+
+parser/augmentation/member_errors:87:11: The modifier 'augment' was already specified.
+  augment augment static late final field;
+          ^^^^^^^
+
+parser/augmentation/member_errors:88:10: The modifier 'augment' should be before the modifier 'static'.
+  static augment late final field;
+         ^^^^^^^
+
+parser/augmentation/member_errors:90:11: The modifier 'augment' was already specified.
+  augment augment static late int field;
+          ^^^^^^^
+
+parser/augmentation/member_errors:91:10: The modifier 'augment' should be before the modifier 'static'.
+  static augment late int field;
+         ^^^^^^^
+
+beginCompilationUnit(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(Class, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(class, null, null, null, Class)
+      handleNoType(Class)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, method)
+            handleNoType(augment)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(null, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+        beginMember()
+          beginMethod(DeclarationKind.Class, external, null, null, null, null, method)
+            handleNoType(external)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassMethod(null, augment, (, null, ;)
+        endMember()
+        beginMetadataStar(external)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, external, null, null, null, null, method)
+            handleNoType(augment)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassMethod(null, external, (, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, method)
+            handleVoidKeyword(void)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(null, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+        beginMember()
+          beginMethod(DeclarationKind.Class, external, null, null, null, null, method)
+            handleVoidKeyword(void)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassMethod(null, augment, (, null, ;)
+        endMember()
+        beginMetadataStar(external)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, external, null, null, null, null, method)
+            handleVoidKeyword(void)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassMethod(null, external, (, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, get, getter)
+            handleNoType(augment)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(=>)
+            handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleLiteralNull(null)
+            handleExpressionFunctionBody(=>, ;)
+          endClassMethod(get, augment, =>, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+        beginMember()
+          beginMethod(DeclarationKind.Class, external, null, null, null, get, getter)
+            handleNoType(external)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(;)
+            handleNoFormalParameters(;, MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassMethod(get, augment, ;, null, ;)
+        endMember()
+        beginMetadataStar(external)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, external, null, null, null, get, getter)
+            handleNoType(augment)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(;)
+            handleNoFormalParameters(;, MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassMethod(get, external, ;, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, get, getter)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(get)
+            handleType(int, null)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(=>)
+            handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleLiteralInt(0)
+            handleExpressionFunctionBody(=>, ;)
+          endClassMethod(get, augment, =>, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+        beginMember()
+          beginMethod(DeclarationKind.Class, external, null, null, null, get, getter)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(get)
+            handleType(int, null)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(;)
+            handleNoFormalParameters(;, MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassMethod(get, augment, ;, null, ;)
+        endMember()
+        beginMetadataStar(external)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, external, null, null, null, get, getter)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(get)
+            handleType(int, null)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(;)
+            handleNoFormalParameters(;, MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassMethod(get, external, ;, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, set, setter)
+            handleNoType(augment)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(set, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+        beginMember()
+          beginMethod(DeclarationKind.Class, external, null, null, null, set, setter)
+            handleNoType(external)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassMethod(set, augment, (, null, ;)
+        endMember()
+        beginMetadataStar(external)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, external, null, null, null, set, setter)
+            handleNoType(augment)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassMethod(set, external, (, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, set, setter)
+            handleVoidKeyword(void)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(set, augment, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+        beginMember()
+          beginMethod(DeclarationKind.Class, external, null, null, null, set, setter)
+            handleVoidKeyword(void)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassMethod(set, augment, (, null, ;)
+        endMember()
+        beginMetadataStar(external)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, external, null, null, null, set, setter)
+            handleVoidKeyword(void)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassMethod(set, external, (, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, null, var, ;)
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, null, null, null, var, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, external, null, null, null, var, ;)
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, external, null, null, null, var, 1, augment, ;)
+        endMember()
+        beginMetadataStar(external)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, null, external, null, null, null, var, ;)
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, external, null, null, null, var, 1, external, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, null, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endClassFields(null, augment, null, null, null, null, final, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, external, null, null, null, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, external, null, null, null, final, 1, augment, ;)
+        endMember()
+        beginMetadataStar(external)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, null, external, null, null, null, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, external, null, null, null, final, 1, external, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, null, const, ;)
+            handleNoType(const)
+            handleIdentifier(field, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endClassFields(null, augment, null, null, null, null, const, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, external, null, null, null, const, ;)
+            handleNoType(const)
+            handleIdentifier(field, fieldDeclaration)
+            handleRecoverableError(Message[ConstFieldWithoutInitializer, The const variable 'field' must be initialized., Try adding an initializer ('= expression') to the declaration., {name: field}], field, field)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, external, null, null, null, const, 1, augment, ;)
+        endMember()
+        beginMetadataStar(external)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, null, external, null, null, null, const, ;)
+            handleNoType(const)
+            handleIdentifier(field, fieldDeclaration)
+            handleRecoverableError(Message[ConstFieldWithoutInitializer, The const variable 'field' must be initialized., Try adding an initializer ('= expression') to the declaration., {name: field}], field, field)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, external, null, null, null, const, 1, external, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, null, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, null, null, null, null, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, external, null, null, null, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, external, null, null, null, null, 1, augment, ;)
+        endMember()
+        beginMetadataStar(external)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, null, external, null, null, null, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, external, null, null, null, null, 1, external, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, late, var, ;)
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, null, null, late, var, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, late, var, ;)
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, null, null, late, var, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, late, var, ;)
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, null, null, late, var, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, late, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, null, null, late, final, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, late, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, null, null, late, final, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, late, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, null, null, late, final, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, late, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, null, null, late, null, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, late, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, null, null, late, null, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, null, null, late, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, null, null, late, null, 1, augment, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, null, method)
+            handleNoType(static)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.StaticMethod)
+            endFormalParameters(0, (, ), MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(null, augment, (, null, })
+        endMember()
+        beginMetadataStar(static)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, null, method)
+            handleNoType(augment)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.StaticMethod)
+            endFormalParameters(0, (, ), MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(null, static, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, null, method)
+            handleVoidKeyword(void)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.StaticMethod)
+            endFormalParameters(0, (, ), MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(null, augment, (, null, })
+        endMember()
+        beginMetadataStar(static)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, null, method)
+            handleVoidKeyword(void)
+            handleIdentifier(method, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.StaticMethod)
+            endFormalParameters(0, (, ), MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(null, static, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, get, getter)
+            handleNoType(static)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(=>)
+            handleNoFormalParameters(=>, MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleLiteralNull(null)
+            handleExpressionFunctionBody(=>, ;)
+          endClassMethod(get, augment, =>, null, ;)
+        endMember()
+        beginMetadataStar(static)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, get, getter)
+            handleNoType(augment)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(=>)
+            handleNoFormalParameters(=>, MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleLiteralNull(null)
+            handleExpressionFunctionBody(=>, ;)
+          endClassMethod(get, static, =>, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, get, getter)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(get)
+            handleType(int, null)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(=>)
+            handleNoFormalParameters(=>, MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleLiteralInt(0)
+            handleExpressionFunctionBody(=>, ;)
+          endClassMethod(get, augment, =>, null, ;)
+        endMember()
+        beginMetadataStar(static)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, get, getter)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(get)
+            handleType(int, null)
+            handleIdentifier(getter, methodDeclaration)
+            handleNoTypeVariables(=>)
+            handleNoFormalParameters(=>, MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleLiteralInt(0)
+            handleExpressionFunctionBody(=>, ;)
+          endClassMethod(get, static, =>, null, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, set, setter)
+            handleNoType(static)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.StaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.StaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+            endFormalParameters(1, (, ), MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(set, augment, (, null, })
+        endMember()
+        beginMetadataStar(static)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, set, setter)
+            handleNoType(augment)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.StaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.StaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+            endFormalParameters(1, (, ), MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(set, static, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, set, setter)
+            handleVoidKeyword(void)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.StaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.StaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+            endFormalParameters(1, (, ), MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(set, augment, (, null, })
+        endMember()
+        beginMetadataStar(static)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, static, null, null, set, setter)
+            handleVoidKeyword(void)
+            handleIdentifier(setter, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.StaticMethod)
+              beginMetadataStar(value)
+              endMetadataStar(0)
+              beginFormalParameter(value, MemberKind.StaticMethod, null, null, null)
+                handleNoType(()
+                handleIdentifier(value, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+            endFormalParameters(1, (, ), MemberKind.StaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            beginBlockFunctionBody({)
+            endBlockFunctionBody(0, {, })
+          endClassMethod(set, static, (, null, })
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, static, null, null, var, })
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, static, null, null, var, 1, augment, ;)
+        endMember()
+        beginMetadataStar(static)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, null, null, static, null, null, var, ;)
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, static, null, null, var, 1, static, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, static, null, null, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endClassFields(null, augment, null, static, null, null, final, 1, augment, ;)
+        endMember()
+        beginMetadataStar(static)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, null, null, static, null, null, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, static, null, null, final, 1, static, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, static, null, null, const, ;)
+            handleNoType(const)
+            handleIdentifier(field, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endClassFields(null, augment, null, static, null, null, const, 1, augment, ;)
+        endMember()
+        beginMetadataStar(static)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, null, null, static, null, null, const, ;)
+            handleNoType(const)
+            handleIdentifier(field, fieldDeclaration)
+            beginFieldInitializer(=)
+              handleLiteralInt(0)
+            endFieldInitializer(=, ;)
+          endClassFields(null, null, null, static, null, null, const, 1, static, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, static, null, null, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, static, null, null, null, 1, augment, ;)
+        endMember()
+        beginMetadataStar(static)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, null, null, static, null, null, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, static, null, null, null, 1, static, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, static, null, late, var, ;)
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, static, null, late, var, 1, augment, ;)
+        endMember()
+        beginMetadataStar(static)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, null, null, static, null, late, var, ;)
+            handleNoType(var)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, static, null, late, var, 1, static, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, static, null, late, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, static, null, late, final, 1, augment, ;)
+        endMember()
+        beginMetadataStar(static)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, null, null, static, null, late, final, ;)
+            handleNoType(final)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, static, null, late, final, 1, static, ;)
+        endMember()
+        beginMetadataStar(augment)
+        endMetadataStar(0)
+        handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, augment, null, static, null, late, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, augment, null, static, null, late, null, 1, augment, ;)
+        endMember()
+        beginMetadataStar(static)
+        endMetadataStar(0)
+        handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, null, null, static, null, late, null, ;)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(field)
+            handleType(int, null)
+            handleIdentifier(field, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, static, null, late, null, 1, static, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 65, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
+endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/augmentation/member_errors.dart.intertwined.expect b/pkg/front_end/parser_testcases/augmentation/member_errors.dart.intertwined.expect
new file mode 100644
index 0000000..87340d0
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/member_errors.dart.intertwined.expect
@@ -0,0 +1,1763 @@
+parseUnit(class)
+  skipErrorTokens(class)
+  listener: beginCompilationUnit(class)
+  syntheticPreviousToken(class)
+  parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+    parseMetadataStar()
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(Class, classOrMixinDeclaration)
+        listener: handleNoTypeVariables({)
+        listener: beginClassDeclaration(class, null, null, null, Class)
+        parseClass(Class, class, class, Class)
+          parseClassHeaderOpt(Class, class, class)
+            parseClassExtendsOpt(Class)
+              listener: handleNoType(Class)
+              listener: handleClassExtends(null, 1)
+            parseClassWithClauseOpt(Class)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(Class)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(Class, DeclarationKind.Class, Class)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, Class)
+              parseMetadataStar({)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod({, null, null, null, null, null, null, augment, Instance of 'NoType', null, method, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, method)
+                listener: handleNoType(augment)
+                ensureIdentifierPotentiallyRecovered(augment, methodDeclaration, false)
+                  listener: handleIdentifier(method, methodDeclaration)
+                parseQualifiedRestOpt(method, methodDeclarationContinuation)
+                parseMethodTypeVar(method)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(method, method, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(method, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(null, augment, (, null, })
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod(}, null, external, null, null, null, null, external, Instance of 'NoType', null, method, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, external, null, null, null, null, method)
+                listener: handleNoType(external)
+                ensureIdentifierPotentiallyRecovered(external, methodDeclaration, false)
+                  listener: handleIdentifier(method, methodDeclaration)
+                parseQualifiedRestOpt(method, methodDeclarationContinuation)
+                parseMethodTypeVar(method)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(method, method, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(method, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassMethod(null, augment, (, null, ;)
+              listener: endMember()
+            notEofOrValue(}, external)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(external)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod(;, null, external, null, null, null, null, augment, Instance of 'NoType', null, method, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, external, null, null, null, null, method)
+                listener: handleNoType(augment)
+                ensureIdentifierPotentiallyRecovered(augment, methodDeclaration, false)
+                  listener: handleIdentifier(method, methodDeclaration)
+                parseQualifiedRestOpt(method, methodDeclarationContinuation)
+                parseMethodTypeVar(method)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(method, method, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(method, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassMethod(null, external, (, null, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseMethod(;, null, null, null, null, null, null, augment, Instance of 'VoidType', null, method, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, method)
+                listener: handleVoidKeyword(void)
+                ensureIdentifierPotentiallyRecovered(void, methodDeclaration, false)
+                  listener: handleIdentifier(method, methodDeclaration)
+                parseQualifiedRestOpt(method, methodDeclarationContinuation)
+                parseMethodTypeVar(method)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(method, method, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(method, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(null, augment, (, null, })
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+              listener: beginMember()
+              parseMethod(}, null, external, null, null, null, null, external, Instance of 'VoidType', null, method, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, external, null, null, null, null, method)
+                listener: handleVoidKeyword(void)
+                ensureIdentifierPotentiallyRecovered(void, methodDeclaration, false)
+                  listener: handleIdentifier(method, methodDeclaration)
+                parseQualifiedRestOpt(method, methodDeclarationContinuation)
+                parseMethodTypeVar(method)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(method, method, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(method, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassMethod(null, augment, (, null, ;)
+              listener: endMember()
+            notEofOrValue(}, external)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(external)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+              listener: beginMember()
+              parseMethod(;, null, external, null, null, null, null, augment, Instance of 'VoidType', null, method, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, external, null, null, null, null, method)
+                listener: handleVoidKeyword(void)
+                ensureIdentifierPotentiallyRecovered(void, methodDeclaration, false)
+                  listener: handleIdentifier(method, methodDeclaration)
+                parseQualifiedRestOpt(method, methodDeclarationContinuation)
+                parseMethodTypeVar(method)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(method, method, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(method, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassMethod(null, external, (, null, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseMethod(;, null, null, null, null, null, null, augment, Instance of 'NoType', get, getter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, get, getter)
+                listener: handleNoType(augment)
+                ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                  listener: handleIdentifier(getter, methodDeclaration)
+                parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(=>)
+                parseGetterOrFormalParameters(getter, getter, true, MemberKind.NonStaticMethod)
+                  listener: handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
+                parseInitializersOpt(getter)
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt(getter)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                inPlainSync()
+                parseFunctionBody(getter, false, true)
+                  parseExpressionFunctionBody(=>, false)
+                    parseExpression(=>)
+                      parsePrecedenceExpression(=>, 1, true)
+                        parseUnaryExpression(=>, true)
+                          parsePrimary(=>, expression)
+                            parseLiteralNull(=>)
+                              listener: handleLiteralNull(null)
+                    ensureSemicolon(null)
+                    listener: handleExpressionFunctionBody(=>, ;)
+                    inGenerator()
+                listener: endClassMethod(get, augment, =>, null, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+              listener: beginMember()
+              parseMethod(;, null, external, null, null, null, null, external, Instance of 'NoType', get, getter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, external, null, null, null, get, getter)
+                listener: handleNoType(external)
+                ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                  listener: handleIdentifier(getter, methodDeclaration)
+                parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(;)
+                parseGetterOrFormalParameters(getter, getter, true, MemberKind.NonStaticMethod)
+                  listener: handleNoFormalParameters(;, MemberKind.NonStaticMethod)
+                parseInitializersOpt(getter)
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt(getter)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                inPlainSync()
+                parseFunctionBody(getter, false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassMethod(get, augment, ;, null, ;)
+              listener: endMember()
+            notEofOrValue(}, external)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(external)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+              listener: beginMember()
+              parseMethod(;, null, external, null, null, null, null, augment, Instance of 'NoType', get, getter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, external, null, null, null, get, getter)
+                listener: handleNoType(augment)
+                ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                  listener: handleIdentifier(getter, methodDeclaration)
+                parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(;)
+                parseGetterOrFormalParameters(getter, getter, true, MemberKind.NonStaticMethod)
+                  listener: handleNoFormalParameters(;, MemberKind.NonStaticMethod)
+                parseInitializersOpt(getter)
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt(getter)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                inPlainSync()
+                parseFunctionBody(getter, false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassMethod(get, external, ;, null, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseMethod(;, null, null, null, null, null, null, augment, Instance of 'SimpleType', get, getter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, get, getter)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(get)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                  listener: handleIdentifier(getter, methodDeclaration)
+                parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(=>)
+                parseGetterOrFormalParameters(getter, getter, true, MemberKind.NonStaticMethod)
+                  listener: handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
+                parseInitializersOpt(getter)
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt(getter)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                inPlainSync()
+                parseFunctionBody(getter, false, true)
+                  parseExpressionFunctionBody(=>, false)
+                    parseExpression(=>)
+                      parsePrecedenceExpression(=>, 1, true)
+                        parseUnaryExpression(=>, true)
+                          parsePrimary(=>, expression)
+                            parseLiteralInt(=>)
+                              listener: handleLiteralInt(0)
+                    ensureSemicolon(0)
+                    listener: handleExpressionFunctionBody(=>, ;)
+                    inGenerator()
+                listener: endClassMethod(get, augment, =>, null, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+              listener: beginMember()
+              parseMethod(;, null, external, null, null, null, null, external, Instance of 'SimpleType', get, getter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, external, null, null, null, get, getter)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(get)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                  listener: handleIdentifier(getter, methodDeclaration)
+                parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(;)
+                parseGetterOrFormalParameters(getter, getter, true, MemberKind.NonStaticMethod)
+                  listener: handleNoFormalParameters(;, MemberKind.NonStaticMethod)
+                parseInitializersOpt(getter)
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt(getter)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                inPlainSync()
+                parseFunctionBody(getter, false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassMethod(get, augment, ;, null, ;)
+              listener: endMember()
+            notEofOrValue(}, external)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(external)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+              listener: beginMember()
+              parseMethod(;, null, external, null, null, null, null, augment, Instance of 'SimpleType', get, getter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, external, null, null, null, get, getter)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(get)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                  listener: handleIdentifier(getter, methodDeclaration)
+                parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(;)
+                parseGetterOrFormalParameters(getter, getter, true, MemberKind.NonStaticMethod)
+                  listener: handleNoFormalParameters(;, MemberKind.NonStaticMethod)
+                parseInitializersOpt(getter)
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt(getter)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                inPlainSync()
+                parseFunctionBody(getter, false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassMethod(get, external, ;, null, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseMethod(;, null, null, null, null, null, null, augment, Instance of 'NoType', set, setter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, set, setter)
+                listener: handleNoType(augment)
+                ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                  listener: handleIdentifier(setter, methodDeclaration)
+                parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(setter, setter, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(setter, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(value)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleNoType(()
+                        ensureIdentifier((, formalParameterDeclaration)
+                          listener: handleIdentifier(value, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(set, augment, (, null, })
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+              listener: beginMember()
+              parseMethod(}, null, external, null, null, null, null, external, Instance of 'NoType', set, setter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, external, null, null, null, set, setter)
+                listener: handleNoType(external)
+                ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                  listener: handleIdentifier(setter, methodDeclaration)
+                parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(setter, setter, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(setter, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(value)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleNoType(()
+                        ensureIdentifier((, formalParameterDeclaration)
+                          listener: handleIdentifier(value, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassMethod(set, augment, (, null, ;)
+              listener: endMember()
+            notEofOrValue(}, external)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(external)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+              listener: beginMember()
+              parseMethod(;, null, external, null, null, null, null, augment, Instance of 'NoType', set, setter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, external, null, null, null, set, setter)
+                listener: handleNoType(augment)
+                ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                  listener: handleIdentifier(setter, methodDeclaration)
+                parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(setter, setter, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(setter, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(value)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleNoType(()
+                        ensureIdentifier((, formalParameterDeclaration)
+                          listener: handleIdentifier(value, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassMethod(set, external, (, null, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseMethod(;, null, null, null, null, null, null, augment, Instance of 'VoidType', set, setter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, set, setter)
+                listener: handleVoidKeyword(void)
+                ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                  listener: handleIdentifier(setter, methodDeclaration)
+                parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(setter, setter, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(setter, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(value)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleNoType(()
+                        ensureIdentifier((, formalParameterDeclaration)
+                          listener: handleIdentifier(value, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(set, augment, (, null, })
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+              listener: beginMember()
+              parseMethod(}, null, external, null, null, null, null, external, Instance of 'VoidType', set, setter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, external, null, null, null, set, setter)
+                listener: handleVoidKeyword(void)
+                ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                  listener: handleIdentifier(setter, methodDeclaration)
+                parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(setter, setter, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(setter, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(value)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleNoType(()
+                        ensureIdentifier((, formalParameterDeclaration)
+                          listener: handleIdentifier(value, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassMethod(set, augment, (, null, ;)
+              listener: endMember()
+            notEofOrValue(}, external)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(external)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+              listener: beginMember()
+              parseMethod(;, null, external, null, null, null, null, augment, Instance of 'VoidType', set, setter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, external, null, null, null, set, setter)
+                listener: handleVoidKeyword(void)
+                ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                  listener: handleIdentifier(setter, methodDeclaration)
+                parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(setter, setter, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(setter, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(value)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(value, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleNoType(()
+                        ensureIdentifier((, formalParameterDeclaration)
+                          listener: handleIdentifier(value, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassMethod(set, external, (, null, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, null, var, var, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, null, var, ;)
+                listener: handleNoType(var)
+                ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, null, var, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, null, null, null, var, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+              listener: beginMember()
+              parseFields(;, null, augment, external, null, null, null, var, var, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, external, null, null, null, var, ;)
+                listener: handleNoType(var)
+                ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, external, var, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, external, null, null, null, var, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, external)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(external)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, null, external, null, null, null, var, var, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, null, external, null, null, null, var, ;)
+                listener: handleNoType(var)
+                ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, null, external, var, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, null, external, null, null, null, var, 1, external, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, null, final, final, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, null, final, ;)
+                listener: handleNoType(final)
+                ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, null, final, DeclarationKind.Class, Class)
+                  listener: beginFieldInitializer(=)
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(0)
+                  listener: endFieldInitializer(=, ;)
+                listener: endClassFields(null, augment, null, null, null, null, final, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+              listener: beginMember()
+              parseFields(;, null, augment, external, null, null, null, final, final, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, external, null, null, null, final, ;)
+                listener: handleNoType(final)
+                ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, external, final, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, external, null, null, null, final, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, external)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(external)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, null, external, null, null, null, final, final, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, null, external, null, null, null, final, ;)
+                listener: handleNoType(final)
+                ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, null, external, final, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, null, external, null, null, null, final, 1, external, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, null, const, const, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, null, const, ;)
+                listener: handleNoType(const)
+                ensureIdentifierPotentiallyRecovered(const, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, null, const, DeclarationKind.Class, Class)
+                  listener: beginFieldInitializer(=)
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(0)
+                  listener: endFieldInitializer(=, ;)
+                listener: endClassFields(null, augment, null, null, null, null, const, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+              listener: beginMember()
+              parseFields(;, null, augment, external, null, null, null, const, const, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, external, null, null, null, const, ;)
+                listener: handleNoType(const)
+                ensureIdentifierPotentiallyRecovered(const, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, external, const, DeclarationKind.Class, Class)
+                  reportRecoverableError(field, Message[ConstFieldWithoutInitializer, The const variable 'field' must be initialized., Try adding an initializer ('= expression') to the declaration., {name: field}])
+                    listener: handleRecoverableError(Message[ConstFieldWithoutInitializer, The const variable 'field' must be initialized., Try adding an initializer ('= expression') to the declaration., {name: field}], field, field)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, external, null, null, null, const, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, external)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(external)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, null, external, null, null, null, const, const, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, null, external, null, null, null, const, ;)
+                listener: handleNoType(const)
+                ensureIdentifierPotentiallyRecovered(const, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, null, external, const, DeclarationKind.Class, Class)
+                  reportRecoverableError(field, Message[ConstFieldWithoutInitializer, The const variable 'field' must be initialized., Try adding an initializer ('= expression') to the declaration., {name: field}])
+                    listener: handleRecoverableError(Message[ConstFieldWithoutInitializer, The const variable 'field' must be initialized., Try adding an initializer ('= expression') to the declaration., {name: field}], field, field)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, null, external, null, null, null, const, 1, external, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, null, null, augment, Instance of 'SimpleType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, null, null, ;)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(field)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, null, null, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, null, null, null, null, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+              listener: beginMember()
+              parseFields(;, null, augment, external, null, null, null, null, external, Instance of 'SimpleType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, external, null, null, null, null, ;)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(field)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, external, null, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, external, null, null, null, null, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, external)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(external)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+                listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, null, external, null, null, null, null, augment, Instance of 'SimpleType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, null, external, null, null, null, null, ;)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(field)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, null, external, null, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, null, external, null, null, null, null, 1, external, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, late, var, var, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, late, var, ;)
+                listener: handleNoType(var)
+                ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, var, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, null, null, late, var, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, late, var, var, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, late, var, ;)
+                listener: handleNoType(var)
+                ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, var, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, null, null, late, var, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, late, var, var, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, late, var, ;)
+                listener: handleNoType(var)
+                ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, var, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, null, null, late, var, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, late, final, final, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, late, final, ;)
+                listener: handleNoType(final)
+                ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, final, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, null, null, late, final, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, late, final, final, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, late, final, ;)
+                listener: handleNoType(final)
+                ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, final, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, null, null, late, final, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, late, final, final, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, late, final, ;)
+                listener: handleNoType(final)
+                ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, final, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, null, null, late, final, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, late, null, late, Instance of 'SimpleType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, late, null, ;)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(field)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, null, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, null, null, late, null, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, late, null, late, Instance of 'SimpleType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, late, null, ;)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(field)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, null, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, null, null, late, null, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, augment, null, null, null, late, null, late, Instance of 'SimpleType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, null, null, late, null, ;)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(field)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, null, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, null, null, late, null, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod(;, null, null, static, null, null, null, static, Instance of 'NoType', null, method, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, null, method)
+                listener: handleNoType(static)
+                ensureIdentifierPotentiallyRecovered(static, methodDeclaration, false)
+                  listener: handleIdentifier(method, methodDeclaration)
+                parseQualifiedRestOpt(method, methodDeclarationContinuation)
+                parseMethodTypeVar(method)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(method, method, false, MemberKind.StaticMethod)
+                  parseFormalParameters(method, MemberKind.StaticMethod)
+                    parseFormalParametersRest((, MemberKind.StaticMethod)
+                      listener: beginFormalParameters((, MemberKind.StaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.StaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                parseFunctionBody(), false, false)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(null, augment, (, null, })
+              listener: endMember()
+            notEofOrValue(}, static)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(static)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}])
+                listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod(}, null, null, static, null, null, null, augment, Instance of 'NoType', null, method, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, null, method)
+                listener: handleNoType(augment)
+                ensureIdentifierPotentiallyRecovered(augment, methodDeclaration, false)
+                  listener: handleIdentifier(method, methodDeclaration)
+                parseQualifiedRestOpt(method, methodDeclarationContinuation)
+                parseMethodTypeVar(method)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(method, method, false, MemberKind.StaticMethod)
+                  parseFormalParameters(method, MemberKind.StaticMethod)
+                    parseFormalParametersRest((, MemberKind.StaticMethod)
+                      listener: beginFormalParameters((, MemberKind.StaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.StaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                parseFunctionBody(), false, false)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(null, static, (, null, })
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseMethod(}, null, null, static, null, null, null, static, Instance of 'VoidType', null, method, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, null, method)
+                listener: handleVoidKeyword(void)
+                ensureIdentifierPotentiallyRecovered(void, methodDeclaration, false)
+                  listener: handleIdentifier(method, methodDeclaration)
+                parseQualifiedRestOpt(method, methodDeclarationContinuation)
+                parseMethodTypeVar(method)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(method, method, false, MemberKind.StaticMethod)
+                  parseFormalParameters(method, MemberKind.StaticMethod)
+                    parseFormalParametersRest((, MemberKind.StaticMethod)
+                      listener: beginFormalParameters((, MemberKind.StaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.StaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                parseFunctionBody(), false, false)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(null, augment, (, null, })
+              listener: endMember()
+            notEofOrValue(}, static)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(static)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}])
+                listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+              listener: beginMember()
+              parseMethod(}, null, null, static, null, null, null, augment, Instance of 'VoidType', null, method, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, null, method)
+                listener: handleVoidKeyword(void)
+                ensureIdentifierPotentiallyRecovered(void, methodDeclaration, false)
+                  listener: handleIdentifier(method, methodDeclaration)
+                parseQualifiedRestOpt(method, methodDeclarationContinuation)
+                parseMethodTypeVar(method)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(method, method, false, MemberKind.StaticMethod)
+                  parseFormalParameters(method, MemberKind.StaticMethod)
+                    parseFormalParametersRest((, MemberKind.StaticMethod)
+                      listener: beginFormalParameters((, MemberKind.StaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.StaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                parseFunctionBody(), false, false)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(null, static, (, null, })
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseMethod(}, null, null, static, null, null, null, static, Instance of 'NoType', get, getter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, get, getter)
+                listener: handleNoType(static)
+                ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                  listener: handleIdentifier(getter, methodDeclaration)
+                parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(=>)
+                parseGetterOrFormalParameters(getter, getter, true, MemberKind.StaticMethod)
+                  listener: handleNoFormalParameters(=>, MemberKind.StaticMethod)
+                parseInitializersOpt(getter)
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt(getter)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(getter, false, false)
+                  parseExpressionFunctionBody(=>, false)
+                    parseExpression(=>)
+                      parsePrecedenceExpression(=>, 1, true)
+                        parseUnaryExpression(=>, true)
+                          parsePrimary(=>, expression)
+                            parseLiteralNull(=>)
+                              listener: handleLiteralNull(null)
+                    ensureSemicolon(null)
+                    listener: handleExpressionFunctionBody(=>, ;)
+                    inGenerator()
+                listener: endClassMethod(get, augment, =>, null, ;)
+              listener: endMember()
+            notEofOrValue(}, static)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(static)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}])
+                listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+              listener: beginMember()
+              parseMethod(;, null, null, static, null, null, null, augment, Instance of 'NoType', get, getter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, get, getter)
+                listener: handleNoType(augment)
+                ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                  listener: handleIdentifier(getter, methodDeclaration)
+                parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(=>)
+                parseGetterOrFormalParameters(getter, getter, true, MemberKind.StaticMethod)
+                  listener: handleNoFormalParameters(=>, MemberKind.StaticMethod)
+                parseInitializersOpt(getter)
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt(getter)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(getter, false, false)
+                  parseExpressionFunctionBody(=>, false)
+                    parseExpression(=>)
+                      parsePrecedenceExpression(=>, 1, true)
+                        parseUnaryExpression(=>, true)
+                          parsePrimary(=>, expression)
+                            parseLiteralNull(=>)
+                              listener: handleLiteralNull(null)
+                    ensureSemicolon(null)
+                    listener: handleExpressionFunctionBody(=>, ;)
+                    inGenerator()
+                listener: endClassMethod(get, static, =>, null, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseMethod(;, null, null, static, null, null, null, static, Instance of 'SimpleType', get, getter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, get, getter)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(get)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                  listener: handleIdentifier(getter, methodDeclaration)
+                parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(=>)
+                parseGetterOrFormalParameters(getter, getter, true, MemberKind.StaticMethod)
+                  listener: handleNoFormalParameters(=>, MemberKind.StaticMethod)
+                parseInitializersOpt(getter)
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt(getter)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(getter, false, false)
+                  parseExpressionFunctionBody(=>, false)
+                    parseExpression(=>)
+                      parsePrecedenceExpression(=>, 1, true)
+                        parseUnaryExpression(=>, true)
+                          parsePrimary(=>, expression)
+                            parseLiteralInt(=>)
+                              listener: handleLiteralInt(0)
+                    ensureSemicolon(0)
+                    listener: handleExpressionFunctionBody(=>, ;)
+                    inGenerator()
+                listener: endClassMethod(get, augment, =>, null, ;)
+              listener: endMember()
+            notEofOrValue(}, static)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(static)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}])
+                listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+              listener: beginMember()
+              parseMethod(;, null, null, static, null, null, null, augment, Instance of 'SimpleType', get, getter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, get, getter)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(get)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(get, methodDeclaration, false)
+                  listener: handleIdentifier(getter, methodDeclaration)
+                parseQualifiedRestOpt(getter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(=>)
+                parseGetterOrFormalParameters(getter, getter, true, MemberKind.StaticMethod)
+                  listener: handleNoFormalParameters(=>, MemberKind.StaticMethod)
+                parseInitializersOpt(getter)
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt(getter)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(getter, false, false)
+                  parseExpressionFunctionBody(=>, false)
+                    parseExpression(=>)
+                      parsePrecedenceExpression(=>, 1, true)
+                        parseUnaryExpression(=>, true)
+                          parsePrimary(=>, expression)
+                            parseLiteralInt(=>)
+                              listener: handleLiteralInt(0)
+                    ensureSemicolon(0)
+                    listener: handleExpressionFunctionBody(=>, ;)
+                    inGenerator()
+                listener: endClassMethod(get, static, =>, null, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseMethod(;, null, null, static, null, null, null, static, Instance of 'NoType', set, setter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, set, setter)
+                listener: handleNoType(static)
+                ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                  listener: handleIdentifier(setter, methodDeclaration)
+                parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(setter, setter, false, MemberKind.StaticMethod)
+                  parseFormalParameters(setter, MemberKind.StaticMethod)
+                    parseFormalParametersRest((, MemberKind.StaticMethod)
+                      listener: beginFormalParameters((, MemberKind.StaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(value)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(value, MemberKind.StaticMethod, null, null, null)
+                        listener: handleNoType(()
+                        ensureIdentifier((, formalParameterDeclaration)
+                          listener: handleIdentifier(value, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.StaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, false)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(set, augment, (, null, })
+              listener: endMember()
+            notEofOrValue(}, static)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(static)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}])
+                listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+              listener: beginMember()
+              parseMethod(}, null, null, static, null, null, null, augment, Instance of 'NoType', set, setter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, set, setter)
+                listener: handleNoType(augment)
+                ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                  listener: handleIdentifier(setter, methodDeclaration)
+                parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(setter, setter, false, MemberKind.StaticMethod)
+                  parseFormalParameters(setter, MemberKind.StaticMethod)
+                    parseFormalParametersRest((, MemberKind.StaticMethod)
+                      listener: beginFormalParameters((, MemberKind.StaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(value)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(value, MemberKind.StaticMethod, null, null, null)
+                        listener: handleNoType(()
+                        ensureIdentifier((, formalParameterDeclaration)
+                          listener: handleIdentifier(value, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.StaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, false)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(set, static, (, null, })
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseMethod(}, null, null, static, null, null, null, static, Instance of 'VoidType', set, setter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, set, setter)
+                listener: handleVoidKeyword(void)
+                ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                  listener: handleIdentifier(setter, methodDeclaration)
+                parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(setter, setter, false, MemberKind.StaticMethod)
+                  parseFormalParameters(setter, MemberKind.StaticMethod)
+                    parseFormalParametersRest((, MemberKind.StaticMethod)
+                      listener: beginFormalParameters((, MemberKind.StaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(value)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(value, MemberKind.StaticMethod, null, null, null)
+                        listener: handleNoType(()
+                        ensureIdentifier((, formalParameterDeclaration)
+                          listener: handleIdentifier(value, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.StaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, false)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(set, augment, (, null, })
+              listener: endMember()
+            notEofOrValue(}, static)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(static)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}])
+                listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+              listener: beginMember()
+              parseMethod(}, null, null, static, null, null, null, augment, Instance of 'VoidType', set, setter, DeclarationKind.Class, Class, false)
+                listener: beginMethod(DeclarationKind.Class, null, static, null, null, set, setter)
+                listener: handleVoidKeyword(void)
+                ensureIdentifierPotentiallyRecovered(set, methodDeclaration, false)
+                  listener: handleIdentifier(setter, methodDeclaration)
+                parseQualifiedRestOpt(setter, methodDeclarationContinuation)
+                listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(setter, setter, false, MemberKind.StaticMethod)
+                  parseFormalParameters(setter, MemberKind.StaticMethod)
+                    parseFormalParametersRest((, MemberKind.StaticMethod)
+                      listener: beginFormalParameters((, MemberKind.StaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(value)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(value, MemberKind.StaticMethod, null, null, null)
+                        listener: handleNoType(()
+                        ensureIdentifier((, formalParameterDeclaration)
+                          listener: handleIdentifier(value, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.StaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.StaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, false)
+                  listener: beginBlockFunctionBody({)
+                  notEofOrValue(}, })
+                  listener: endBlockFunctionBody(0, {, })
+                listener: endClassMethod(set, static, (, null, })
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, Class)
+              parseMetadataStar(})
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseFields(}, null, augment, null, static, null, null, var, var, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, static, null, null, var, })
+                listener: handleNoType(var)
+                ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, null, var, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, static, null, null, var, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, static)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(static)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}])
+                listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, null, null, static, null, null, var, var, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, static, null, null, var, ;)
+                listener: handleNoType(var)
+                ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, null, null, var, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, null, null, static, null, null, var, 1, static, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, augment, null, static, null, null, final, final, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, static, null, null, final, ;)
+                listener: handleNoType(final)
+                ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, null, final, DeclarationKind.Class, Class)
+                  listener: beginFieldInitializer(=)
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(0)
+                  listener: endFieldInitializer(=, ;)
+                listener: endClassFields(null, augment, null, static, null, null, final, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, static)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(static)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}])
+                listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, null, null, static, null, null, final, final, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, static, null, null, final, ;)
+                listener: handleNoType(final)
+                ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, null, null, final, DeclarationKind.Class, Class)
+                  listener: beginFieldInitializer(=)
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(0)
+                  listener: endFieldInitializer(=, ;)
+                listener: endClassFields(null, null, null, static, null, null, final, 1, static, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, augment, null, static, null, null, const, const, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, static, null, null, const, ;)
+                listener: handleNoType(const)
+                ensureIdentifierPotentiallyRecovered(const, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, null, const, DeclarationKind.Class, Class)
+                  listener: beginFieldInitializer(=)
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(0)
+                  listener: endFieldInitializer(=, ;)
+                listener: endClassFields(null, augment, null, static, null, null, const, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, static)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(static)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}])
+                listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, null, null, static, null, null, const, const, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, static, null, null, const, ;)
+                listener: handleNoType(const)
+                ensureIdentifierPotentiallyRecovered(const, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, null, null, const, DeclarationKind.Class, Class)
+                  listener: beginFieldInitializer(=)
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(0)
+                  listener: endFieldInitializer(=, ;)
+                listener: endClassFields(null, null, null, static, null, null, const, 1, static, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, augment, null, static, null, null, null, static, Instance of 'SimpleType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, static, null, null, null, ;)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(field)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, augment, null, null, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, static, null, null, null, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, static)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(static)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}])
+                listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, null, null, static, null, null, null, augment, Instance of 'SimpleType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, static, null, null, null, ;)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(field)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, null, null, null, null, null, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, null, null, static, null, null, null, 1, static, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, augment, null, static, null, late, var, var, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, static, null, late, var, ;)
+                listener: handleNoType(var)
+                ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, var, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, static, null, late, var, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, static)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(static)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}])
+                listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, null, null, static, null, late, var, var, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, static, null, late, var, ;)
+                listener: handleNoType(var)
+                ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, null, null, var, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, null, null, static, null, late, var, 1, static, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, augment, null, static, null, late, final, final, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, static, null, late, final, ;)
+                listener: handleNoType(final)
+                ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, final, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, static, null, late, final, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, static)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(static)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}])
+                listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, null, null, static, null, late, final, final, Instance of 'NoType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, static, null, late, final, ;)
+                listener: handleNoType(final)
+                ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, null, null, final, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, null, null, static, null, late, final, 1, static, ;)
+              listener: endMember()
+            notEofOrValue(}, augment)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(augment)
+                listener: endMetadataStar(0)
+              reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+                listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, augment, null, static, null, late, null, late, Instance of 'SimpleType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, augment, null, static, null, late, null, ;)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(field)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, augment, null, null, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, augment, null, static, null, late, null, 1, augment, ;)
+              listener: endMember()
+            notEofOrValue(}, static)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Class)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(static)
+                listener: endMetadataStar(0)
+              reportRecoverableError(augment, Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}])
+                listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'static'., Try re-ordering the modifiers., {string: augment, string2: static}], augment, augment)
+              listener: beginMember()
+              parseFields(;, null, null, null, static, null, late, null, late, Instance of 'SimpleType', field, DeclarationKind.Class, Class, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, static, null, late, null, ;)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(field)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(field, fieldDeclaration)
+                parseFieldInitializerOpt(field, field, late, null, null, null, null, DeclarationKind.Class, Class)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, null, null, static, null, late, null, 1, static, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 65, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration()
+  reportAllErrorTokens(class)
+  listener: endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/augmentation/member_errors.dart.parser.expect b/pkg/front_end/parser_testcases/augmentation/member_errors.dart.parser.expect
new file mode 100644
index 0000000..652e6e7
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/member_errors.dart.parser.expect
@@ -0,0 +1,187 @@
+class Class {
+augment augment method() {}
+augment external method();
+external augment method();
+
+augment augment void method() {}
+augment external void method();
+external augment void method();
+
+augment augment get getter => null;
+augment external get getter;
+external augment get getter;
+
+augment augment int get getter => 0;
+augment external int get getter;
+external augment int get getter;
+
+augment augment set setter(value) {}
+augment external set setter(value);
+external augment set setter(value);
+
+augment augment void set setter(value) {}
+augment external void set setter(value);
+external augment void set setter(value);
+
+augment augment var field;
+augment external var field;
+external augment var field;
+
+augment augment final field = 0;
+augment external final field;
+external augment final field;
+
+augment augment const field = 0;
+augment external const field;
+external augment const field;
+
+augment augment int field;
+augment external int field;
+external augment int field;
+
+augment augment late var field;
+augment late var field;
+augment late var field;
+
+augment augment late final field;
+augment late final field;
+augment late final field;
+
+augment augment late int field;
+augment late int field;
+augment late int field;
+
+augment augment static method() {}
+static augment method() {}
+
+augment augment static void method() {}
+static augment void method() {}
+
+augment augment static get getter => null;
+static augment get getter => null;
+
+augment augment static int get getter => 0;
+static augment int get getter => 0;
+
+augment augment static set setter(value) {}
+static augment set setter(value) {}
+
+augment augment static void set setter(value) {}
+static augment void set setter(value) {}
+
+augment augment static var field;
+static augment var field;
+
+augment augment static final field = 0;
+static augment final field = 0;
+
+augment augment static const field = 0;
+static augment const field = 0;
+
+augment augment static int field;
+static augment int field;
+
+augment augment static late var field;
+static augment late var field;
+
+augment augment static late final field;
+static augment late final field;
+
+augment augment static late int field;
+static augment late int field;
+}
+
+
+class[KeywordToken] Class[StringToken] {[BeginToken]
+augment[KeywordToken] augment[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] external[KeywordToken] method[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] method[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] external[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] get[KeywordToken] getter[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] get[KeywordToken] getter[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] external[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] external[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] final[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] const[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] const[KeywordToken] field[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] const[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+static[KeywordToken] augment[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+static[KeywordToken] augment[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+static[KeywordToken] augment[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+static[KeywordToken] augment[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] final[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] final[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] const[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] const[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/augmentation/member_errors.dart.scanner.expect b/pkg/front_end/parser_testcases/augmentation/member_errors.dart.scanner.expect
new file mode 100644
index 0000000..652e6e7
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/member_errors.dart.scanner.expect
@@ -0,0 +1,187 @@
+class Class {
+augment augment method() {}
+augment external method();
+external augment method();
+
+augment augment void method() {}
+augment external void method();
+external augment void method();
+
+augment augment get getter => null;
+augment external get getter;
+external augment get getter;
+
+augment augment int get getter => 0;
+augment external int get getter;
+external augment int get getter;
+
+augment augment set setter(value) {}
+augment external set setter(value);
+external augment set setter(value);
+
+augment augment void set setter(value) {}
+augment external void set setter(value);
+external augment void set setter(value);
+
+augment augment var field;
+augment external var field;
+external augment var field;
+
+augment augment final field = 0;
+augment external final field;
+external augment final field;
+
+augment augment const field = 0;
+augment external const field;
+external augment const field;
+
+augment augment int field;
+augment external int field;
+external augment int field;
+
+augment augment late var field;
+augment late var field;
+augment late var field;
+
+augment augment late final field;
+augment late final field;
+augment late final field;
+
+augment augment late int field;
+augment late int field;
+augment late int field;
+
+augment augment static method() {}
+static augment method() {}
+
+augment augment static void method() {}
+static augment void method() {}
+
+augment augment static get getter => null;
+static augment get getter => null;
+
+augment augment static int get getter => 0;
+static augment int get getter => 0;
+
+augment augment static set setter(value) {}
+static augment set setter(value) {}
+
+augment augment static void set setter(value) {}
+static augment void set setter(value) {}
+
+augment augment static var field;
+static augment var field;
+
+augment augment static final field = 0;
+static augment final field = 0;
+
+augment augment static const field = 0;
+static augment const field = 0;
+
+augment augment static int field;
+static augment int field;
+
+augment augment static late var field;
+static augment late var field;
+
+augment augment static late final field;
+static augment late final field;
+
+augment augment static late int field;
+static augment late int field;
+}
+
+
+class[KeywordToken] Class[StringToken] {[BeginToken]
+augment[KeywordToken] augment[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] external[KeywordToken] method[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] method[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] external[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] get[KeywordToken] getter[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] get[KeywordToken] getter[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] external[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] external[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] final[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] const[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] const[KeywordToken] field[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] const[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+static[KeywordToken] augment[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+static[KeywordToken] augment[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+static[KeywordToken] augment[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+static[KeywordToken] augment[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] final[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] final[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] const[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] const[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] static[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+static[KeywordToken] augment[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/augmentation/top_level_declarations.dart b/pkg/front_end/parser_testcases/augmentation/top_level_declarations.dart
new file mode 100644
index 0000000..0348bf2
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/top_level_declarations.dart
@@ -0,0 +1,18 @@
+augment method() {}
+augment void method() {}
+augment get getter => null;
+augment int get getter => 0;
+augment set setter(value) {}
+augment void set setter(value) {}
+augment var field;
+augment final field = 0;
+augment const field = 0;
+augment int field;
+augment late var field;
+augment late final field;
+augment late int field;
+augment class Class {}
+augment abstract class Class {}
+augment class Class = Object with Mixin;
+augment abstract class Class = Object with Mixin;
+augment mixin Mixin {}
diff --git a/pkg/front_end/parser_testcases/augmentation/top_level_declarations.dart.expect b/pkg/front_end/parser_testcases/augmentation/top_level_declarations.dart.expect
new file mode 100644
index 0000000..ff03f5c
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/top_level_declarations.dart.expect
@@ -0,0 +1,248 @@
+beginCompilationUnit(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    beginTopLevelMethod(, augment, null)
+      handleNoType(augment)
+      handleIdentifier(method, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(augment, null, })
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    beginTopLevelMethod(}, augment, null)
+      handleVoidKeyword(void)
+      handleIdentifier(method, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(augment, null, })
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    beginTopLevelMethod(}, augment, null)
+      handleNoType(augment)
+      handleIdentifier(getter, topLevelFunctionDeclaration)
+      handleNoTypeVariables(=>)
+      handleNoFormalParameters(=>, MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleLiteralNull(null)
+      handleExpressionFunctionBody(=>, ;)
+    endTopLevelMethod(augment, get, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    beginTopLevelMethod(;, augment, null)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(get)
+      handleType(int, null)
+      handleIdentifier(getter, topLevelFunctionDeclaration)
+      handleNoTypeVariables(=>)
+      handleNoFormalParameters(=>, MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleLiteralInt(0)
+      handleExpressionFunctionBody(=>, ;)
+    endTopLevelMethod(augment, get, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    beginTopLevelMethod(;, augment, null)
+      handleNoType(augment)
+      handleIdentifier(setter, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(value)
+        endMetadataStar(0)
+        beginFormalParameter(value, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(value, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(augment, set, })
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    beginTopLevelMethod(}, augment, null)
+      handleVoidKeyword(void)
+      handleIdentifier(setter, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(value)
+        endMetadataStar(0)
+        beginFormalParameter(value, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(value, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(augment, set, })
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, null, var, })
+      handleNoType(var)
+      handleIdentifier(field, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(null, null, null, null, var, 1, augment, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, null, final, ;)
+      handleNoType(final)
+      handleIdentifier(field, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(0)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, final, 1, augment, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, null, const, ;)
+      handleNoType(const)
+      handleIdentifier(field, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(0)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, const, 1, augment, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, null, null, ;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(field)
+      handleType(int, null)
+      handleIdentifier(field, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(null, null, null, null, null, 1, augment, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, late, var, ;)
+      handleNoType(var)
+      handleIdentifier(field, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(null, null, null, late, var, 1, augment, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, late, final, ;)
+      handleNoType(final)
+      handleIdentifier(field, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(null, null, null, late, final, 1, augment, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, late, null, ;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(field)
+      handleType(int, null)
+      handleIdentifier(field, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(null, null, null, late, null, 1, augment, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(Class, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(class, null, null, augment, Class)
+      handleNoType(Class)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
+    handleIdentifier(Class, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(abstract, abstract, null, augment, Class)
+      handleNoType(Class)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(abstract, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+    endClassDeclaration(abstract, })
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(Class, classOrMixinDeclaration)
+    handleNoTypeVariables(=)
+    beginNamedMixinApplication(class, null, null, augment, Class)
+      handleIdentifier(Object, typeReference)
+      handleNoTypeArguments(with)
+      handleType(Object, null)
+      beginTypeList(Mixin)
+        handleIdentifier(Mixin, typeReference)
+        handleNoTypeArguments(;)
+        handleType(Mixin, null)
+      endTypeList(1)
+      handleNamedMixinApplicationWithClause(with)
+    endNamedMixinApplication(class, class, =, null, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
+    handleIdentifier(Class, classOrMixinDeclaration)
+    handleNoTypeVariables(=)
+    beginNamedMixinApplication(abstract, abstract, null, augment, Class)
+      handleIdentifier(Object, typeReference)
+      handleNoTypeArguments(with)
+      handleType(Object, null)
+      beginTypeList(Mixin)
+        handleIdentifier(Mixin, typeReference)
+        handleNoTypeArguments(;)
+        handleType(Mixin, null)
+      endTypeList(1)
+      handleNamedMixinApplicationWithClause(with)
+    endNamedMixinApplication(abstract, class, =, null, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(mixin)
+    handleIdentifier(Mixin, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginMixinDeclaration(augment, mixin, Mixin)
+      handleMixinOn(null, 0)
+      handleImplements(null, 0)
+      handleMixinHeader(mixin)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Mixin, {)
+      endClassOrMixinOrExtensionBody(DeclarationKind.Mixin, 0, {, })
+    endMixinDeclaration(mixin, })
+  endTopLevelDeclaration()
+endCompilationUnit(18, )
diff --git a/pkg/front_end/parser_testcases/augmentation/top_level_declarations.dart.intertwined.expect b/pkg/front_end/parser_testcases/augmentation/top_level_declarations.dart.intertwined.expect
new file mode 100644
index 0000000..3bc9178
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/top_level_declarations.dart.intertwined.expect
@@ -0,0 +1,453 @@
+parseUnit(augment)
+  skipErrorTokens(augment)
+  listener: beginCompilationUnit(augment)
+  syntheticPreviousToken(augment)
+  parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+    parseMetadataStar()
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl()
+      listener: beginTopLevelMember(augment)
+      isReservedKeyword(()
+      parseTopLevelMethod(, augment, null, augment, Instance of 'NoType', null, method, false)
+        listener: beginTopLevelMethod(, augment, null)
+        listener: handleNoType(augment)
+        ensureIdentifierPotentiallyRecovered(augment, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(method, topLevelFunctionDeclaration)
+        parseMethodTypeVar(method)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(method, method, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(method, MemberKind.TopLevelMethod)
+            parseFormalParametersRest((, MemberKind.TopLevelMethod)
+              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(augment, null, })
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(augment)
+      parseTopLevelMethod(}, augment, null, augment, Instance of 'VoidType', null, method, false)
+        listener: beginTopLevelMethod(}, augment, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(method, topLevelFunctionDeclaration)
+        parseMethodTypeVar(method)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(method, method, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(method, MemberKind.TopLevelMethod)
+            parseFormalParametersRest((, MemberKind.TopLevelMethod)
+              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(augment, null, })
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(augment)
+      isReservedKeyword(=>)
+      parseTopLevelMethod(}, augment, null, augment, Instance of 'NoType', get, getter, false)
+        listener: beginTopLevelMethod(}, augment, null)
+        listener: handleNoType(augment)
+        ensureIdentifierPotentiallyRecovered(get, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(getter, topLevelFunctionDeclaration)
+        listener: handleNoTypeVariables(=>)
+        parseGetterOrFormalParameters(getter, getter, true, MemberKind.TopLevelMethod)
+          listener: handleNoFormalParameters(=>, MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt(getter)
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        inPlainSync()
+        parseFunctionBody(getter, false, false)
+          parseExpressionFunctionBody(=>, false)
+            parseExpression(=>)
+              parsePrecedenceExpression(=>, 1, true)
+                parseUnaryExpression(=>, true)
+                  parsePrimary(=>, expression)
+                    parseLiteralNull(=>)
+                      listener: handleLiteralNull(null)
+            ensureSemicolon(null)
+            listener: handleExpressionFunctionBody(=>, ;)
+            inGenerator()
+        listener: endTopLevelMethod(augment, get, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      parseTopLevelMethod(;, augment, null, augment, Instance of 'SimpleType', get, getter, false)
+        listener: beginTopLevelMethod(;, augment, null)
+        listener: handleIdentifier(int, typeReference)
+        listener: handleNoTypeArguments(get)
+        listener: handleType(int, null)
+        ensureIdentifierPotentiallyRecovered(get, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(getter, topLevelFunctionDeclaration)
+        listener: handleNoTypeVariables(=>)
+        parseGetterOrFormalParameters(getter, getter, true, MemberKind.TopLevelMethod)
+          listener: handleNoFormalParameters(=>, MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt(getter)
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        inPlainSync()
+        parseFunctionBody(getter, false, false)
+          parseExpressionFunctionBody(=>, false)
+            parseExpression(=>)
+              parsePrecedenceExpression(=>, 1, true)
+                parseUnaryExpression(=>, true)
+                  parsePrimary(=>, expression)
+                    parseLiteralInt(=>)
+                      listener: handleLiteralInt(0)
+            ensureSemicolon(0)
+            listener: handleExpressionFunctionBody(=>, ;)
+            inGenerator()
+        listener: endTopLevelMethod(augment, get, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      isReservedKeyword(()
+      parseTopLevelMethod(;, augment, null, augment, Instance of 'NoType', set, setter, false)
+        listener: beginTopLevelMethod(;, augment, null)
+        listener: handleNoType(augment)
+        ensureIdentifierPotentiallyRecovered(set, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(setter, topLevelFunctionDeclaration)
+        listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(setter, setter, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(setter, MemberKind.TopLevelMethod)
+            parseFormalParametersRest((, MemberKind.TopLevelMethod)
+              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+                parseMetadataStar(()
+                  listener: beginMetadataStar(value)
+                  listener: endMetadataStar(0)
+                listener: beginFormalParameter(value, MemberKind.TopLevelMethod, null, null, null)
+                listener: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(value, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(augment, set, })
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(augment)
+      parseTopLevelMethod(}, augment, null, augment, Instance of 'VoidType', set, setter, false)
+        listener: beginTopLevelMethod(}, augment, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(set, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(setter, topLevelFunctionDeclaration)
+        listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(setter, setter, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(setter, MemberKind.TopLevelMethod)
+            parseFormalParametersRest((, MemberKind.TopLevelMethod)
+              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+                parseMetadataStar(()
+                  listener: beginMetadataStar(value)
+                  listener: endMetadataStar(0)
+                listener: beginFormalParameter(value, MemberKind.TopLevelMethod, null, null, null)
+                listener: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(value, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(augment, set, })
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(augment)
+      parseFields(}, null, augment, null, null, null, null, var, var, Instance of 'NoType', field, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, null, var, })
+        listener: handleNoType(var)
+        ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
+          listener: handleIdentifier(field, topLevelVariableDeclaration)
+        parseFieldInitializerOpt(field, field, null, null, augment, null, var, DeclarationKind.TopLevel, null)
+          listener: handleNoFieldInitializer(;)
+        listener: endTopLevelFields(null, null, null, null, var, 1, augment, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      parseFields(;, null, augment, null, null, null, null, final, final, Instance of 'NoType', field, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, null, final, ;)
+        listener: handleNoType(final)
+        ensureIdentifierPotentiallyRecovered(final, topLevelVariableDeclaration, false)
+          listener: handleIdentifier(field, topLevelVariableDeclaration)
+        parseFieldInitializerOpt(field, field, null, null, augment, null, final, DeclarationKind.TopLevel, null)
+          listener: beginFieldInitializer(=)
+          parseExpression(=)
+            parsePrecedenceExpression(=, 1, true)
+              parseUnaryExpression(=, true)
+                parsePrimary(=, expression)
+                  parseLiteralInt(=)
+                    listener: handleLiteralInt(0)
+          listener: endFieldInitializer(=, ;)
+        listener: endTopLevelFields(null, null, null, null, final, 1, augment, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      parseFields(;, null, augment, null, null, null, null, const, const, Instance of 'NoType', field, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, null, const, ;)
+        listener: handleNoType(const)
+        ensureIdentifierPotentiallyRecovered(const, topLevelVariableDeclaration, false)
+          listener: handleIdentifier(field, topLevelVariableDeclaration)
+        parseFieldInitializerOpt(field, field, null, null, augment, null, const, DeclarationKind.TopLevel, null)
+          listener: beginFieldInitializer(=)
+          parseExpression(=)
+            parsePrecedenceExpression(=, 1, true)
+              parseUnaryExpression(=, true)
+                parsePrimary(=, expression)
+                  parseLiteralInt(=)
+                    listener: handleLiteralInt(0)
+          listener: endFieldInitializer(=, ;)
+        listener: endTopLevelFields(null, null, null, null, const, 1, augment, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      parseFields(;, null, augment, null, null, null, null, null, augment, Instance of 'SimpleType', field, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, null, null, ;)
+        listener: handleIdentifier(int, typeReference)
+        listener: handleNoTypeArguments(field)
+        listener: handleType(int, null)
+        ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
+          listener: handleIdentifier(field, topLevelVariableDeclaration)
+        parseFieldInitializerOpt(field, field, null, null, augment, null, null, DeclarationKind.TopLevel, null)
+          listener: handleNoFieldInitializer(;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, augment, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      parseFields(;, null, augment, null, null, null, late, var, var, Instance of 'NoType', field, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, late, var, ;)
+        listener: handleNoType(var)
+        ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
+          listener: handleIdentifier(field, topLevelVariableDeclaration)
+        parseFieldInitializerOpt(field, field, late, null, augment, null, var, DeclarationKind.TopLevel, null)
+          listener: handleNoFieldInitializer(;)
+        listener: endTopLevelFields(null, null, null, late, var, 1, augment, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      parseFields(;, null, augment, null, null, null, late, final, final, Instance of 'NoType', field, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, late, final, ;)
+        listener: handleNoType(final)
+        ensureIdentifierPotentiallyRecovered(final, topLevelVariableDeclaration, false)
+          listener: handleIdentifier(field, topLevelVariableDeclaration)
+        parseFieldInitializerOpt(field, field, late, null, augment, null, final, DeclarationKind.TopLevel, null)
+          listener: handleNoFieldInitializer(;)
+        listener: endTopLevelFields(null, null, null, late, final, 1, augment, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      parseFields(;, null, augment, null, null, null, late, null, late, Instance of 'SimpleType', field, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, late, null, ;)
+        listener: handleIdentifier(int, typeReference)
+        listener: handleNoTypeArguments(field)
+        listener: handleType(int, null)
+        ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
+          listener: handleIdentifier(field, topLevelVariableDeclaration)
+        parseFieldInitializerOpt(field, field, late, null, augment, null, null, DeclarationKind.TopLevel, null)
+          listener: handleNoFieldInitializer(;)
+        listener: endTopLevelFields(null, null, null, late, null, 1, augment, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
+      parseClassOrNamedMixinApplication(null, null, augment, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(Class, classOrMixinDeclaration)
+        listener: handleNoTypeVariables({)
+        listener: beginClassDeclaration(class, null, null, augment, Class)
+        parseClass(Class, class, class, Class)
+          parseClassHeaderOpt(Class, class, class)
+            parseClassExtendsOpt(Class)
+              listener: handleNoType(Class)
+              listener: handleClassExtends(null, 1)
+            parseClassWithClauseOpt(Class)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(Class)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(Class, DeclarationKind.Class, Class)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
+      parseClassOrNamedMixinApplication(abstract, null, augment, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(Class, classOrMixinDeclaration)
+        listener: handleNoTypeVariables({)
+        listener: beginClassDeclaration(abstract, abstract, null, augment, Class)
+        parseClass(Class, abstract, class, Class)
+          parseClassHeaderOpt(Class, abstract, class)
+            parseClassExtendsOpt(Class)
+              listener: handleNoType(Class)
+              listener: handleClassExtends(null, 1)
+            parseClassWithClauseOpt(Class)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(Class)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(abstract, class, null)
+          parseClassOrMixinOrExtensionBody(Class, DeclarationKind.Class, Class)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+          listener: endClassDeclaration(abstract, })
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
+      parseClassOrNamedMixinApplication(null, null, augment, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(Class, classOrMixinDeclaration)
+        listener: handleNoTypeVariables(=)
+        listener: beginNamedMixinApplication(class, null, null, augment, Class)
+        parseNamedMixinApplication(Class, class, class)
+          listener: handleIdentifier(Object, typeReference)
+          listener: handleNoTypeArguments(with)
+          listener: handleType(Object, null)
+          parseMixinApplicationRest(Object)
+            parseTypeList(with)
+              listener: beginTypeList(Mixin)
+              listener: handleIdentifier(Mixin, typeReference)
+              listener: handleNoTypeArguments(;)
+              listener: handleType(Mixin, null)
+              listener: endTypeList(1)
+            listener: handleNamedMixinApplicationWithClause(with)
+          ensureSemicolon(Mixin)
+          listener: endNamedMixinApplication(class, class, =, null, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
+      parseClassOrNamedMixinApplication(abstract, null, augment, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(Class, classOrMixinDeclaration)
+        listener: handleNoTypeVariables(=)
+        listener: beginNamedMixinApplication(abstract, abstract, null, augment, Class)
+        parseNamedMixinApplication(Class, abstract, class)
+          listener: handleIdentifier(Object, typeReference)
+          listener: handleNoTypeArguments(with)
+          listener: handleType(Object, null)
+          parseMixinApplicationRest(Object)
+            parseTypeList(with)
+              listener: beginTypeList(Mixin)
+              listener: handleIdentifier(Mixin, typeReference)
+              listener: handleNoTypeArguments(;)
+              listener: handleType(Mixin, null)
+              listener: endTypeList(1)
+            listener: handleNamedMixinApplicationWithClause(with)
+          ensureSemicolon(Mixin)
+          listener: endNamedMixinApplication(abstract, class, =, null, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(;, mixin, null, Instance of 'DirectiveContext')
+      parseMixin(augment, mixin)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(mixin)
+        ensureIdentifier(mixin, classOrMixinDeclaration)
+          listener: handleIdentifier(Mixin, classOrMixinDeclaration)
+        listener: handleNoTypeVariables({)
+        listener: beginMixinDeclaration(augment, mixin, Mixin)
+        parseMixinHeaderOpt(Mixin, mixin)
+          parseMixinOnOpt(Mixin)
+            listener: handleMixinOn(null, 0)
+          parseClassOrMixinOrEnumImplementsOpt(Mixin)
+            listener: handleImplements(null, 0)
+          listener: handleMixinHeader(mixin)
+        parseClassOrMixinOrExtensionBody(Mixin, DeclarationKind.Mixin, Mixin)
+          listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Mixin, {)
+          notEofOrValue(}, })
+          listener: endClassOrMixinOrExtensionBody(DeclarationKind.Mixin, 0, {, })
+        listener: endMixinDeclaration(mixin, })
+  listener: endTopLevelDeclaration()
+  reportAllErrorTokens(augment)
+  listener: endCompilationUnit(18, )
diff --git a/pkg/front_end/parser_testcases/augmentation/top_level_declarations.dart.parser.expect b/pkg/front_end/parser_testcases/augmentation/top_level_declarations.dart.parser.expect
new file mode 100644
index 0000000..bab1385
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/top_level_declarations.dart.parser.expect
@@ -0,0 +1,39 @@
+augment method() {}
+augment void method() {}
+augment get getter => null;
+augment int get getter => 0;
+augment set setter(value) {}
+augment void set setter(value) {}
+augment var field;
+augment final field = 0;
+augment const field = 0;
+augment int field;
+augment late var field;
+augment late final field;
+augment late int field;
+augment class Class {}
+augment abstract class Class {}
+augment class Class = Object with Mixin;
+augment abstract class Class = Object with Mixin;
+augment mixin Mixin {}
+
+
+augment[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+augment[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] final[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] const[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] class[KeywordToken] Class[StringToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] abstract[KeywordToken] class[KeywordToken] Class[StringToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] class[KeywordToken] Class[StringToken] =[SimpleToken] Object[StringToken] with[KeywordToken] Mixin[StringToken];[SimpleToken]
+augment[KeywordToken] abstract[KeywordToken] class[KeywordToken] Class[StringToken] =[SimpleToken] Object[StringToken] with[KeywordToken] Mixin[StringToken];[SimpleToken]
+augment[KeywordToken] mixin[KeywordToken] Mixin[StringToken] {[BeginToken]}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/augmentation/top_level_declarations.dart.scanner.expect b/pkg/front_end/parser_testcases/augmentation/top_level_declarations.dart.scanner.expect
new file mode 100644
index 0000000..bab1385
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/top_level_declarations.dart.scanner.expect
@@ -0,0 +1,39 @@
+augment method() {}
+augment void method() {}
+augment get getter => null;
+augment int get getter => 0;
+augment set setter(value) {}
+augment void set setter(value) {}
+augment var field;
+augment final field = 0;
+augment const field = 0;
+augment int field;
+augment late var field;
+augment late final field;
+augment late int field;
+augment class Class {}
+augment abstract class Class {}
+augment class Class = Object with Mixin;
+augment abstract class Class = Object with Mixin;
+augment mixin Mixin {}
+
+
+augment[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+augment[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] final[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] const[KeywordToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] final[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] late[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] class[KeywordToken] Class[StringToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] abstract[KeywordToken] class[KeywordToken] Class[StringToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] class[KeywordToken] Class[StringToken] =[SimpleToken] Object[StringToken] with[KeywordToken] Mixin[StringToken];[SimpleToken]
+augment[KeywordToken] abstract[KeywordToken] class[KeywordToken] Class[StringToken] =[SimpleToken] Object[StringToken] with[KeywordToken] Mixin[StringToken];[SimpleToken]
+augment[KeywordToken] mixin[KeywordToken] Mixin[StringToken] {[BeginToken]}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart b/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart
new file mode 100644
index 0000000..edfc1f5
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart
@@ -0,0 +1,39 @@
+augment augment method() {}
+augment external method();
+external augment method();
+
+augment augment void method() {}
+augment external void method();
+external augment void method();
+
+augment augment get getter => null;
+augment external get getter;
+external augment get getter;
+
+augment augment int get getter => 0;
+augment external int get getter;
+external augment int get getter;
+
+augment augment set setter(value) {}
+augment external set setter(value);
+external augment set setter(value);
+
+augment augment void set setter(value) {}
+augment external void set setter(value);
+external augment void set setter(value);
+
+augment augment var field;
+augment external var field;
+external augment var field;
+
+augment augment int field = 0;
+augment external int field;
+external augment int field;
+
+augment augment class Class {}
+abstract augment class Class {}
+
+augment augment class Class = Object with Mixin;
+abstract augment class Class = Object with Mixin;
+
+augment augment mixin Mixin {}
diff --git a/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.expect b/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.expect
new file mode 100644
index 0000000..e6b0821
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.expect
@@ -0,0 +1,570 @@
+Problems reported:
+
+parser/augmentation/top_level_errors:1:9: The modifier 'augment' was already specified.
+augment augment method() {}
+        ^^^^^^^
+
+parser/augmentation/top_level_errors:2:9: Members can't be declared to be both 'external' and 'augment'.
+augment external method();
+        ^^^^^^^^
+
+parser/augmentation/top_level_errors:3:10: Members can't be declared to be both 'augment' and 'external'.
+external augment method();
+         ^^^^^^^
+
+parser/augmentation/top_level_errors:5:9: The modifier 'augment' was already specified.
+augment augment void method() {}
+        ^^^^^^^
+
+parser/augmentation/top_level_errors:6:9: Members can't be declared to be both 'external' and 'augment'.
+augment external void method();
+        ^^^^^^^^
+
+parser/augmentation/top_level_errors:7:10: Members can't be declared to be both 'augment' and 'external'.
+external augment void method();
+         ^^^^^^^
+
+parser/augmentation/top_level_errors:9:9: The modifier 'augment' was already specified.
+augment augment get getter => null;
+        ^^^^^^^
+
+parser/augmentation/top_level_errors:10:9: Members can't be declared to be both 'external' and 'augment'.
+augment external get getter;
+        ^^^^^^^^
+
+parser/augmentation/top_level_errors:11:10: Members can't be declared to be both 'augment' and 'external'.
+external augment get getter;
+         ^^^^^^^
+
+parser/augmentation/top_level_errors:13:9: The modifier 'augment' was already specified.
+augment augment int get getter => 0;
+        ^^^^^^^
+
+parser/augmentation/top_level_errors:14:9: Members can't be declared to be both 'external' and 'augment'.
+augment external int get getter;
+        ^^^^^^^^
+
+parser/augmentation/top_level_errors:15:10: Members can't be declared to be both 'augment' and 'external'.
+external augment int get getter;
+         ^^^^^^^
+
+parser/augmentation/top_level_errors:17:9: The modifier 'augment' was already specified.
+augment augment set setter(value) {}
+        ^^^^^^^
+
+parser/augmentation/top_level_errors:18:9: Members can't be declared to be both 'external' and 'augment'.
+augment external set setter(value);
+        ^^^^^^^^
+
+parser/augmentation/top_level_errors:19:10: Members can't be declared to be both 'augment' and 'external'.
+external augment set setter(value);
+         ^^^^^^^
+
+parser/augmentation/top_level_errors:21:9: The modifier 'augment' was already specified.
+augment augment void set setter(value) {}
+        ^^^^^^^
+
+parser/augmentation/top_level_errors:22:9: Members can't be declared to be both 'external' and 'augment'.
+augment external void set setter(value);
+        ^^^^^^^^
+
+parser/augmentation/top_level_errors:23:10: Members can't be declared to be both 'augment' and 'external'.
+external augment void set setter(value);
+         ^^^^^^^
+
+parser/augmentation/top_level_errors:25:9: The modifier 'augment' was already specified.
+augment augment var field;
+        ^^^^^^^
+
+parser/augmentation/top_level_errors:26:9: Members can't be declared to be both 'external' and 'augment'.
+augment external var field;
+        ^^^^^^^^
+
+parser/augmentation/top_level_errors:27:10: Members can't be declared to be both 'augment' and 'external'.
+external augment var field;
+         ^^^^^^^
+
+parser/augmentation/top_level_errors:29:9: The modifier 'augment' was already specified.
+augment augment int field = 0;
+        ^^^^^^^
+
+parser/augmentation/top_level_errors:30:9: Members can't be declared to be both 'external' and 'augment'.
+augment external int field;
+        ^^^^^^^^
+
+parser/augmentation/top_level_errors:31:10: Members can't be declared to be both 'augment' and 'external'.
+external augment int field;
+         ^^^^^^^
+
+parser/augmentation/top_level_errors:33:9: The modifier 'augment' was already specified.
+augment augment class Class {}
+        ^^^^^^^
+
+parser/augmentation/top_level_errors:34:10: The modifier 'augment' should be before the modifier 'abstract'.
+abstract augment class Class {}
+         ^^^^^^^
+
+parser/augmentation/top_level_errors:36:9: The modifier 'augment' was already specified.
+augment augment class Class = Object with Mixin;
+        ^^^^^^^
+
+parser/augmentation/top_level_errors:37:10: The modifier 'augment' should be before the modifier 'abstract'.
+abstract augment class Class = Object with Mixin;
+         ^^^^^^^
+
+parser/augmentation/top_level_errors:39:9: The modifier 'augment' was already specified.
+augment augment mixin Mixin {}
+        ^^^^^^^
+
+beginCompilationUnit(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+    beginTopLevelMethod(, augment, null)
+      handleNoType(augment)
+      handleIdentifier(method, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(augment, null, })
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+    beginTopLevelMethod(}, augment, external)
+      handleNoType(external)
+      handleIdentifier(method, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleEmptyFunctionBody(;)
+    endTopLevelMethod(augment, null, ;)
+  endTopLevelDeclaration(external)
+  beginMetadataStar(external)
+  endMetadataStar(0)
+  beginTopLevelMember(external)
+    handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+    beginTopLevelMethod(;, augment, external)
+      handleNoType(augment)
+      handleIdentifier(method, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleEmptyFunctionBody(;)
+    endTopLevelMethod(external, null, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+    beginTopLevelMethod(;, augment, null)
+      handleVoidKeyword(void)
+      handleIdentifier(method, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(augment, null, })
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+    beginTopLevelMethod(}, augment, external)
+      handleVoidKeyword(void)
+      handleIdentifier(method, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleEmptyFunctionBody(;)
+    endTopLevelMethod(augment, null, ;)
+  endTopLevelDeclaration(external)
+  beginMetadataStar(external)
+  endMetadataStar(0)
+  beginTopLevelMember(external)
+    handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+    beginTopLevelMethod(;, augment, external)
+      handleVoidKeyword(void)
+      handleIdentifier(method, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleEmptyFunctionBody(;)
+    endTopLevelMethod(external, null, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+    beginTopLevelMethod(;, augment, null)
+      handleNoType(augment)
+      handleIdentifier(getter, topLevelFunctionDeclaration)
+      handleNoTypeVariables(=>)
+      handleNoFormalParameters(=>, MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleLiteralNull(null)
+      handleExpressionFunctionBody(=>, ;)
+    endTopLevelMethod(augment, get, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+    beginTopLevelMethod(;, augment, external)
+      handleNoType(external)
+      handleIdentifier(getter, topLevelFunctionDeclaration)
+      handleNoTypeVariables(;)
+      handleNoFormalParameters(;, MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleEmptyFunctionBody(;)
+    endTopLevelMethod(augment, get, ;)
+  endTopLevelDeclaration(external)
+  beginMetadataStar(external)
+  endMetadataStar(0)
+  beginTopLevelMember(external)
+    handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+    beginTopLevelMethod(;, augment, external)
+      handleNoType(augment)
+      handleIdentifier(getter, topLevelFunctionDeclaration)
+      handleNoTypeVariables(;)
+      handleNoFormalParameters(;, MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleEmptyFunctionBody(;)
+    endTopLevelMethod(external, get, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+    beginTopLevelMethod(;, augment, null)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(get)
+      handleType(int, null)
+      handleIdentifier(getter, topLevelFunctionDeclaration)
+      handleNoTypeVariables(=>)
+      handleNoFormalParameters(=>, MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleLiteralInt(0)
+      handleExpressionFunctionBody(=>, ;)
+    endTopLevelMethod(augment, get, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+    beginTopLevelMethod(;, augment, external)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(get)
+      handleType(int, null)
+      handleIdentifier(getter, topLevelFunctionDeclaration)
+      handleNoTypeVariables(;)
+      handleNoFormalParameters(;, MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleEmptyFunctionBody(;)
+    endTopLevelMethod(augment, get, ;)
+  endTopLevelDeclaration(external)
+  beginMetadataStar(external)
+  endMetadataStar(0)
+  beginTopLevelMember(external)
+    handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+    beginTopLevelMethod(;, augment, external)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(get)
+      handleType(int, null)
+      handleIdentifier(getter, topLevelFunctionDeclaration)
+      handleNoTypeVariables(;)
+      handleNoFormalParameters(;, MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleEmptyFunctionBody(;)
+    endTopLevelMethod(external, get, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+    beginTopLevelMethod(;, augment, null)
+      handleNoType(augment)
+      handleIdentifier(setter, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(value)
+        endMetadataStar(0)
+        beginFormalParameter(value, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(value, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(augment, set, })
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+    beginTopLevelMethod(}, augment, external)
+      handleNoType(external)
+      handleIdentifier(setter, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(value)
+        endMetadataStar(0)
+        beginFormalParameter(value, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(value, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleEmptyFunctionBody(;)
+    endTopLevelMethod(augment, set, ;)
+  endTopLevelDeclaration(external)
+  beginMetadataStar(external)
+  endMetadataStar(0)
+  beginTopLevelMember(external)
+    handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+    beginTopLevelMethod(;, augment, external)
+      handleNoType(augment)
+      handleIdentifier(setter, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(value)
+        endMetadataStar(0)
+        beginFormalParameter(value, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(value, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleEmptyFunctionBody(;)
+    endTopLevelMethod(external, set, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+    beginTopLevelMethod(;, augment, null)
+      handleVoidKeyword(void)
+      handleIdentifier(setter, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(value)
+        endMetadataStar(0)
+        beginFormalParameter(value, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(value, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      beginBlockFunctionBody({)
+      endBlockFunctionBody(0, {, })
+    endTopLevelMethod(augment, set, })
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+    beginTopLevelMethod(}, augment, external)
+      handleVoidKeyword(void)
+      handleIdentifier(setter, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(value)
+        endMetadataStar(0)
+        beginFormalParameter(value, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(value, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleEmptyFunctionBody(;)
+    endTopLevelMethod(augment, set, ;)
+  endTopLevelDeclaration(external)
+  beginMetadataStar(external)
+  endMetadataStar(0)
+  beginTopLevelMember(external)
+    handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+    beginTopLevelMethod(;, augment, external)
+      handleVoidKeyword(void)
+      handleIdentifier(setter, topLevelFunctionDeclaration)
+      handleNoTypeVariables(()
+      beginFormalParameters((, MemberKind.TopLevelMethod)
+        beginMetadataStar(value)
+        endMetadataStar(0)
+        beginFormalParameter(value, MemberKind.TopLevelMethod, null, null, null)
+          handleNoType(()
+          handleIdentifier(value, formalParameterDeclaration)
+          handleFormalParameterWithoutValue())
+        endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+      endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+      handleAsyncModifier(null, null)
+      handleEmptyFunctionBody(;)
+    endTopLevelMethod(external, set, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+    beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, null, var, ;)
+      handleNoType(var)
+      handleIdentifier(field, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(null, null, null, null, var, 1, augment, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+    beginFields(DeclarationKind.TopLevel, null, augment, external, null, null, null, var, ;)
+      handleNoType(var)
+      handleIdentifier(field, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(external, null, null, null, var, 1, augment, ;)
+  endTopLevelDeclaration(external)
+  beginMetadataStar(external)
+  endMetadataStar(0)
+  beginTopLevelMember(external)
+    handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+    beginFields(DeclarationKind.TopLevel, null, augment, external, null, null, null, var, ;)
+      handleNoType(var)
+      handleIdentifier(field, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(external, null, null, null, var, 1, external, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+    beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, null, null, ;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(field)
+      handleType(int, null)
+      handleIdentifier(field, topLevelVariableDeclaration)
+      beginFieldInitializer(=)
+        handleLiteralInt(0)
+      endFieldInitializer(=, ;)
+    endTopLevelFields(null, null, null, null, null, 1, augment, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  beginTopLevelMember(augment)
+    handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+    beginFields(DeclarationKind.TopLevel, null, augment, external, null, null, null, null, ;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(field)
+      handleType(int, null)
+      handleIdentifier(field, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(external, null, null, null, null, 1, augment, ;)
+  endTopLevelDeclaration(external)
+  beginMetadataStar(external)
+  endMetadataStar(0)
+  beginTopLevelMember(external)
+    handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+    beginFields(DeclarationKind.TopLevel, null, augment, external, null, null, null, null, ;)
+      handleIdentifier(int, typeReference)
+      handleNoTypeArguments(field)
+      handleType(int, null)
+      handleIdentifier(field, topLevelVariableDeclaration)
+      handleNoFieldInitializer(;)
+    endTopLevelFields(external, null, null, null, null, 1, external, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(Class, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(class, null, null, augment, Class)
+      handleNoType(Class)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(abstract)
+  beginMetadataStar(abstract)
+  endMetadataStar(0)
+  handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'abstract'., Try re-ordering the modifiers., {string: augment, string2: abstract}], augment, augment)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
+    handleIdentifier(Class, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(abstract, abstract, null, augment, Class)
+      handleNoType(Class)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(abstract, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+    endClassDeclaration(abstract, })
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(Class, classOrMixinDeclaration)
+    handleNoTypeVariables(=)
+    beginNamedMixinApplication(class, null, null, augment, Class)
+      handleIdentifier(Object, typeReference)
+      handleNoTypeArguments(with)
+      handleType(Object, null)
+      beginTypeList(Mixin)
+        handleIdentifier(Mixin, typeReference)
+        handleNoTypeArguments(;)
+        handleType(Mixin, null)
+      endTypeList(1)
+      handleNamedMixinApplicationWithClause(with)
+    endNamedMixinApplication(class, class, =, null, ;)
+  endTopLevelDeclaration(abstract)
+  beginMetadataStar(abstract)
+  endMetadataStar(0)
+  handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'abstract'., Try re-ordering the modifiers., {string: augment, string2: abstract}], augment, augment)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
+    handleIdentifier(Class, classOrMixinDeclaration)
+    handleNoTypeVariables(=)
+    beginNamedMixinApplication(abstract, abstract, null, augment, Class)
+      handleIdentifier(Object, typeReference)
+      handleNoTypeArguments(with)
+      handleType(Object, null)
+      beginTypeList(Mixin)
+        handleIdentifier(Mixin, typeReference)
+        handleNoTypeArguments(;)
+        handleType(Mixin, null)
+      endTypeList(1)
+      handleNamedMixinApplicationWithClause(with)
+    endNamedMixinApplication(abstract, class, =, null, ;)
+  endTopLevelDeclaration(augment)
+  beginMetadataStar(augment)
+  endMetadataStar(0)
+  handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(mixin)
+    handleIdentifier(Mixin, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginMixinDeclaration(augment, mixin, Mixin)
+      handleMixinOn(null, 0)
+      handleImplements(null, 0)
+      handleMixinHeader(mixin)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Mixin, {)
+      endClassOrMixinOrExtensionBody(DeclarationKind.Mixin, 0, {, })
+    endMixinDeclaration(mixin, })
+  endTopLevelDeclaration()
+endCompilationUnit(29, )
diff --git a/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.intertwined.expect b/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.intertwined.expect
new file mode 100644
index 0000000..a5272f9
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.intertwined.expect
@@ -0,0 +1,829 @@
+parseUnit(augment)
+  skipErrorTokens(augment)
+  listener: beginCompilationUnit(augment)
+  syntheticPreviousToken(augment)
+  parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+    parseMetadataStar()
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl()
+      listener: beginTopLevelMember(augment)
+      reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+        listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+      isReservedKeyword(()
+      parseTopLevelMethod(, augment, null, augment, Instance of 'NoType', null, method, false)
+        listener: beginTopLevelMethod(, augment, null)
+        listener: handleNoType(augment)
+        ensureIdentifierPotentiallyRecovered(augment, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(method, topLevelFunctionDeclaration)
+        parseMethodTypeVar(method)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(method, method, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(method, MemberKind.TopLevelMethod)
+            parseFormalParametersRest((, MemberKind.TopLevelMethod)
+              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(augment, null, })
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(augment)
+      reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+        listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+      isReservedKeyword(()
+      parseTopLevelMethod(}, augment, external, external, Instance of 'NoType', null, method, false)
+        listener: beginTopLevelMethod(}, augment, external)
+        listener: handleNoType(external)
+        ensureIdentifierPotentiallyRecovered(external, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(method, topLevelFunctionDeclaration)
+        parseMethodTypeVar(method)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(method, method, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(method, MemberKind.TopLevelMethod)
+            parseFormalParametersRest((, MemberKind.TopLevelMethod)
+              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, true)
+          listener: handleEmptyFunctionBody(;)
+        listener: endTopLevelMethod(augment, null, ;)
+  listener: endTopLevelDeclaration(external)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(external)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(external)
+      reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+        listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+      isReservedKeyword(()
+      parseTopLevelMethod(;, augment, external, augment, Instance of 'NoType', null, method, false)
+        listener: beginTopLevelMethod(;, augment, external)
+        listener: handleNoType(augment)
+        ensureIdentifierPotentiallyRecovered(augment, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(method, topLevelFunctionDeclaration)
+        parseMethodTypeVar(method)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(method, method, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(method, MemberKind.TopLevelMethod)
+            parseFormalParametersRest((, MemberKind.TopLevelMethod)
+              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, true)
+          listener: handleEmptyFunctionBody(;)
+        listener: endTopLevelMethod(external, null, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+        listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+      parseTopLevelMethod(;, augment, null, augment, Instance of 'VoidType', null, method, false)
+        listener: beginTopLevelMethod(;, augment, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(method, topLevelFunctionDeclaration)
+        parseMethodTypeVar(method)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(method, method, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(method, MemberKind.TopLevelMethod)
+            parseFormalParametersRest((, MemberKind.TopLevelMethod)
+              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(augment, null, })
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(augment)
+      reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+        listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+      parseTopLevelMethod(}, augment, external, external, Instance of 'VoidType', null, method, false)
+        listener: beginTopLevelMethod(}, augment, external)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(method, topLevelFunctionDeclaration)
+        parseMethodTypeVar(method)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(method, method, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(method, MemberKind.TopLevelMethod)
+            parseFormalParametersRest((, MemberKind.TopLevelMethod)
+              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, true)
+          listener: handleEmptyFunctionBody(;)
+        listener: endTopLevelMethod(augment, null, ;)
+  listener: endTopLevelDeclaration(external)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(external)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(external)
+      reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+        listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+      parseTopLevelMethod(;, augment, external, augment, Instance of 'VoidType', null, method, false)
+        listener: beginTopLevelMethod(;, augment, external)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(method, topLevelFunctionDeclaration)
+        parseMethodTypeVar(method)
+          listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(method, method, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(method, MemberKind.TopLevelMethod)
+            parseFormalParametersRest((, MemberKind.TopLevelMethod)
+              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        parseFunctionBody(), false, true)
+          listener: handleEmptyFunctionBody(;)
+        listener: endTopLevelMethod(external, null, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+        listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+      isReservedKeyword(=>)
+      parseTopLevelMethod(;, augment, null, augment, Instance of 'NoType', get, getter, false)
+        listener: beginTopLevelMethod(;, augment, null)
+        listener: handleNoType(augment)
+        ensureIdentifierPotentiallyRecovered(get, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(getter, topLevelFunctionDeclaration)
+        listener: handleNoTypeVariables(=>)
+        parseGetterOrFormalParameters(getter, getter, true, MemberKind.TopLevelMethod)
+          listener: handleNoFormalParameters(=>, MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt(getter)
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        inPlainSync()
+        parseFunctionBody(getter, false, false)
+          parseExpressionFunctionBody(=>, false)
+            parseExpression(=>)
+              parsePrecedenceExpression(=>, 1, true)
+                parseUnaryExpression(=>, true)
+                  parsePrimary(=>, expression)
+                    parseLiteralNull(=>)
+                      listener: handleLiteralNull(null)
+            ensureSemicolon(null)
+            listener: handleExpressionFunctionBody(=>, ;)
+            inGenerator()
+        listener: endTopLevelMethod(augment, get, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+        listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+      isReservedKeyword(;)
+      parseTopLevelMethod(;, augment, external, external, Instance of 'NoType', get, getter, false)
+        listener: beginTopLevelMethod(;, augment, external)
+        listener: handleNoType(external)
+        ensureIdentifierPotentiallyRecovered(get, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(getter, topLevelFunctionDeclaration)
+        listener: handleNoTypeVariables(;)
+        parseGetterOrFormalParameters(getter, getter, true, MemberKind.TopLevelMethod)
+          listener: handleNoFormalParameters(;, MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt(getter)
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        inPlainSync()
+        parseFunctionBody(getter, false, true)
+          listener: handleEmptyFunctionBody(;)
+        listener: endTopLevelMethod(augment, get, ;)
+  listener: endTopLevelDeclaration(external)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(external)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(external)
+      reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+        listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+      isReservedKeyword(;)
+      parseTopLevelMethod(;, augment, external, augment, Instance of 'NoType', get, getter, false)
+        listener: beginTopLevelMethod(;, augment, external)
+        listener: handleNoType(augment)
+        ensureIdentifierPotentiallyRecovered(get, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(getter, topLevelFunctionDeclaration)
+        listener: handleNoTypeVariables(;)
+        parseGetterOrFormalParameters(getter, getter, true, MemberKind.TopLevelMethod)
+          listener: handleNoFormalParameters(;, MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt(getter)
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        inPlainSync()
+        parseFunctionBody(getter, false, true)
+          listener: handleEmptyFunctionBody(;)
+        listener: endTopLevelMethod(external, get, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+        listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+      parseTopLevelMethod(;, augment, null, augment, Instance of 'SimpleType', get, getter, false)
+        listener: beginTopLevelMethod(;, augment, null)
+        listener: handleIdentifier(int, typeReference)
+        listener: handleNoTypeArguments(get)
+        listener: handleType(int, null)
+        ensureIdentifierPotentiallyRecovered(get, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(getter, topLevelFunctionDeclaration)
+        listener: handleNoTypeVariables(=>)
+        parseGetterOrFormalParameters(getter, getter, true, MemberKind.TopLevelMethod)
+          listener: handleNoFormalParameters(=>, MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt(getter)
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        inPlainSync()
+        parseFunctionBody(getter, false, false)
+          parseExpressionFunctionBody(=>, false)
+            parseExpression(=>)
+              parsePrecedenceExpression(=>, 1, true)
+                parseUnaryExpression(=>, true)
+                  parsePrimary(=>, expression)
+                    parseLiteralInt(=>)
+                      listener: handleLiteralInt(0)
+            ensureSemicolon(0)
+            listener: handleExpressionFunctionBody(=>, ;)
+            inGenerator()
+        listener: endTopLevelMethod(augment, get, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+        listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+      parseTopLevelMethod(;, augment, external, external, Instance of 'SimpleType', get, getter, false)
+        listener: beginTopLevelMethod(;, augment, external)
+        listener: handleIdentifier(int, typeReference)
+        listener: handleNoTypeArguments(get)
+        listener: handleType(int, null)
+        ensureIdentifierPotentiallyRecovered(get, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(getter, topLevelFunctionDeclaration)
+        listener: handleNoTypeVariables(;)
+        parseGetterOrFormalParameters(getter, getter, true, MemberKind.TopLevelMethod)
+          listener: handleNoFormalParameters(;, MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt(getter)
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        inPlainSync()
+        parseFunctionBody(getter, false, true)
+          listener: handleEmptyFunctionBody(;)
+        listener: endTopLevelMethod(augment, get, ;)
+  listener: endTopLevelDeclaration(external)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(external)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(external)
+      reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+        listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+      parseTopLevelMethod(;, augment, external, augment, Instance of 'SimpleType', get, getter, false)
+        listener: beginTopLevelMethod(;, augment, external)
+        listener: handleIdentifier(int, typeReference)
+        listener: handleNoTypeArguments(get)
+        listener: handleType(int, null)
+        ensureIdentifierPotentiallyRecovered(get, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(getter, topLevelFunctionDeclaration)
+        listener: handleNoTypeVariables(;)
+        parseGetterOrFormalParameters(getter, getter, true, MemberKind.TopLevelMethod)
+          listener: handleNoFormalParameters(;, MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt(getter)
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        inPlainSync()
+        parseFunctionBody(getter, false, true)
+          listener: handleEmptyFunctionBody(;)
+        listener: endTopLevelMethod(external, get, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+        listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+      isReservedKeyword(()
+      parseTopLevelMethod(;, augment, null, augment, Instance of 'NoType', set, setter, false)
+        listener: beginTopLevelMethod(;, augment, null)
+        listener: handleNoType(augment)
+        ensureIdentifierPotentiallyRecovered(set, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(setter, topLevelFunctionDeclaration)
+        listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(setter, setter, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(setter, MemberKind.TopLevelMethod)
+            parseFormalParametersRest((, MemberKind.TopLevelMethod)
+              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+                parseMetadataStar(()
+                  listener: beginMetadataStar(value)
+                  listener: endMetadataStar(0)
+                listener: beginFormalParameter(value, MemberKind.TopLevelMethod, null, null, null)
+                listener: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(value, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(augment, set, })
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(augment)
+      reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+        listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+      isReservedKeyword(()
+      parseTopLevelMethod(}, augment, external, external, Instance of 'NoType', set, setter, false)
+        listener: beginTopLevelMethod(}, augment, external)
+        listener: handleNoType(external)
+        ensureIdentifierPotentiallyRecovered(set, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(setter, topLevelFunctionDeclaration)
+        listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(setter, setter, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(setter, MemberKind.TopLevelMethod)
+            parseFormalParametersRest((, MemberKind.TopLevelMethod)
+              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+                parseMetadataStar(()
+                  listener: beginMetadataStar(value)
+                  listener: endMetadataStar(0)
+                listener: beginFormalParameter(value, MemberKind.TopLevelMethod, null, null, null)
+                listener: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(value, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        inPlainSync()
+        parseFunctionBody(), false, true)
+          listener: handleEmptyFunctionBody(;)
+        listener: endTopLevelMethod(augment, set, ;)
+  listener: endTopLevelDeclaration(external)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(external)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(external)
+      reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+        listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+      isReservedKeyword(()
+      parseTopLevelMethod(;, augment, external, augment, Instance of 'NoType', set, setter, false)
+        listener: beginTopLevelMethod(;, augment, external)
+        listener: handleNoType(augment)
+        ensureIdentifierPotentiallyRecovered(set, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(setter, topLevelFunctionDeclaration)
+        listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(setter, setter, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(setter, MemberKind.TopLevelMethod)
+            parseFormalParametersRest((, MemberKind.TopLevelMethod)
+              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+                parseMetadataStar(()
+                  listener: beginMetadataStar(value)
+                  listener: endMetadataStar(0)
+                listener: beginFormalParameter(value, MemberKind.TopLevelMethod, null, null, null)
+                listener: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(value, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        inPlainSync()
+        parseFunctionBody(), false, true)
+          listener: handleEmptyFunctionBody(;)
+        listener: endTopLevelMethod(external, set, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+        listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+      parseTopLevelMethod(;, augment, null, augment, Instance of 'VoidType', set, setter, false)
+        listener: beginTopLevelMethod(;, augment, null)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(set, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(setter, topLevelFunctionDeclaration)
+        listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(setter, setter, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(setter, MemberKind.TopLevelMethod)
+            parseFormalParametersRest((, MemberKind.TopLevelMethod)
+              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+                parseMetadataStar(()
+                  listener: beginMetadataStar(value)
+                  listener: endMetadataStar(0)
+                listener: beginFormalParameter(value, MemberKind.TopLevelMethod, null, null, null)
+                listener: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(value, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        inPlainSync()
+        parseFunctionBody(), false, false)
+          listener: beginBlockFunctionBody({)
+          notEofOrValue(}, })
+          listener: endBlockFunctionBody(0, {, })
+        listener: endTopLevelMethod(augment, set, })
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(augment)
+      reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+        listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+      parseTopLevelMethod(}, augment, external, external, Instance of 'VoidType', set, setter, false)
+        listener: beginTopLevelMethod(}, augment, external)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(set, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(setter, topLevelFunctionDeclaration)
+        listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(setter, setter, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(setter, MemberKind.TopLevelMethod)
+            parseFormalParametersRest((, MemberKind.TopLevelMethod)
+              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+                parseMetadataStar(()
+                  listener: beginMetadataStar(value)
+                  listener: endMetadataStar(0)
+                listener: beginFormalParameter(value, MemberKind.TopLevelMethod, null, null, null)
+                listener: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(value, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        inPlainSync()
+        parseFunctionBody(), false, true)
+          listener: handleEmptyFunctionBody(;)
+        listener: endTopLevelMethod(augment, set, ;)
+  listener: endTopLevelDeclaration(external)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(external)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(external)
+      reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+        listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+      parseTopLevelMethod(;, augment, external, augment, Instance of 'VoidType', set, setter, false)
+        listener: beginTopLevelMethod(;, augment, external)
+        listener: handleVoidKeyword(void)
+        ensureIdentifierPotentiallyRecovered(set, topLevelFunctionDeclaration, false)
+          listener: handleIdentifier(setter, topLevelFunctionDeclaration)
+        listener: handleNoTypeVariables(()
+        parseGetterOrFormalParameters(setter, setter, false, MemberKind.TopLevelMethod)
+          parseFormalParameters(setter, MemberKind.TopLevelMethod)
+            parseFormalParametersRest((, MemberKind.TopLevelMethod)
+              listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+              parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+                parseMetadataStar(()
+                  listener: beginMetadataStar(value)
+                  listener: endMetadataStar(0)
+                listener: beginFormalParameter(value, MemberKind.TopLevelMethod, null, null, null)
+                listener: handleNoType(()
+                ensureIdentifier((, formalParameterDeclaration)
+                  listener: handleIdentifier(value, formalParameterDeclaration)
+                listener: handleFormalParameterWithoutValue())
+                listener: endFormalParameter(null, null, null, value, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+              listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+        parseAsyncModifierOpt())
+          listener: handleAsyncModifier(null, null)
+          inPlainSync()
+        inPlainSync()
+        parseFunctionBody(), false, true)
+          listener: handleEmptyFunctionBody(;)
+        listener: endTopLevelMethod(external, set, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+        listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+      parseFields(;, null, augment, null, null, null, null, var, var, Instance of 'NoType', field, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, null, var, ;)
+        listener: handleNoType(var)
+        ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
+          listener: handleIdentifier(field, topLevelVariableDeclaration)
+        parseFieldInitializerOpt(field, field, null, null, augment, null, var, DeclarationKind.TopLevel, null)
+          listener: handleNoFieldInitializer(;)
+        listener: endTopLevelFields(null, null, null, null, var, 1, augment, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+        listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+      parseFields(;, null, augment, external, null, null, null, var, var, Instance of 'NoType', field, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, augment, external, null, null, null, var, ;)
+        listener: handleNoType(var)
+        ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
+          listener: handleIdentifier(field, topLevelVariableDeclaration)
+        parseFieldInitializerOpt(field, field, null, null, augment, external, var, DeclarationKind.TopLevel, null)
+          listener: handleNoFieldInitializer(;)
+        listener: endTopLevelFields(external, null, null, null, var, 1, augment, ;)
+  listener: endTopLevelDeclaration(external)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(external)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(external)
+      reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+        listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+      parseFields(;, null, augment, external, null, null, null, var, var, Instance of 'NoType', field, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, augment, external, null, null, null, var, ;)
+        listener: handleNoType(var)
+        ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
+          listener: handleIdentifier(field, topLevelVariableDeclaration)
+        parseFieldInitializerOpt(field, field, null, null, augment, external, var, DeclarationKind.TopLevel, null)
+          listener: handleNoFieldInitializer(;)
+        listener: endTopLevelFields(external, null, null, null, var, 1, external, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+        listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+      parseFields(;, null, augment, null, null, null, null, null, augment, Instance of 'SimpleType', field, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, augment, null, null, null, null, null, ;)
+        listener: handleIdentifier(int, typeReference)
+        listener: handleNoTypeArguments(field)
+        listener: handleType(int, null)
+        ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
+          listener: handleIdentifier(field, topLevelVariableDeclaration)
+        parseFieldInitializerOpt(field, field, null, null, augment, null, null, DeclarationKind.TopLevel, null)
+          listener: beginFieldInitializer(=)
+          parseExpression(=)
+            parsePrecedenceExpression(=, 1, true)
+              parseUnaryExpression(=, true)
+                parsePrimary(=, expression)
+                  parseLiteralInt(=)
+                    listener: handleLiteralInt(0)
+          listener: endFieldInitializer(=, ;)
+        listener: endTopLevelFields(null, null, null, null, null, 1, augment, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(augment)
+      reportRecoverableError(external, Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}])
+        listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'external' and 'augment'., Try removing one of the keywords., {string: external, string2: augment}], external, external)
+      parseFields(;, null, augment, external, null, null, null, null, external, Instance of 'SimpleType', field, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, augment, external, null, null, null, null, ;)
+        listener: handleIdentifier(int, typeReference)
+        listener: handleNoTypeArguments(field)
+        listener: handleType(int, null)
+        ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
+          listener: handleIdentifier(field, topLevelVariableDeclaration)
+        parseFieldInitializerOpt(field, field, null, null, augment, external, null, DeclarationKind.TopLevel, null)
+          listener: handleNoFieldInitializer(;)
+        listener: endTopLevelFields(external, null, null, null, null, 1, augment, ;)
+  listener: endTopLevelDeclaration(external)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(external)
+      listener: endMetadataStar(0)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(external)
+      reportRecoverableError(augment, Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}])
+        listener: handleRecoverableError(Message[ConflictingModifiers, Members can't be declared to be both 'augment' and 'external'., Try removing one of the keywords., {string: augment, string2: external}], augment, augment)
+      parseFields(;, null, augment, external, null, null, null, null, augment, Instance of 'SimpleType', field, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, augment, external, null, null, null, null, ;)
+        listener: handleIdentifier(int, typeReference)
+        listener: handleNoTypeArguments(field)
+        listener: handleType(int, null)
+        ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
+          listener: handleIdentifier(field, topLevelVariableDeclaration)
+        parseFieldInitializerOpt(field, field, null, null, augment, external, null, DeclarationKind.TopLevel, null)
+          listener: handleNoFieldInitializer(;)
+        listener: endTopLevelFields(external, null, null, null, null, 1, external, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
+      reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+        listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+      parseClassOrNamedMixinApplication(null, null, augment, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(Class, classOrMixinDeclaration)
+        listener: handleNoTypeVariables({)
+        listener: beginClassDeclaration(class, null, null, augment, Class)
+        parseClass(Class, class, class, Class)
+          parseClassHeaderOpt(Class, class, class)
+            parseClassExtendsOpt(Class)
+              listener: handleNoType(Class)
+              listener: handleClassExtends(null, 1)
+            parseClassWithClauseOpt(Class)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(Class)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(Class, DeclarationKind.Class, Class)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(abstract)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(abstract)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
+      reportRecoverableError(augment, Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'abstract'., Try re-ordering the modifiers., {string: augment, string2: abstract}])
+        listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'abstract'., Try re-ordering the modifiers., {string: augment, string2: abstract}], augment, augment)
+      parseClassOrNamedMixinApplication(abstract, null, augment, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(Class, classOrMixinDeclaration)
+        listener: handleNoTypeVariables({)
+        listener: beginClassDeclaration(abstract, abstract, null, augment, Class)
+        parseClass(Class, abstract, class, Class)
+          parseClassHeaderOpt(Class, abstract, class)
+            parseClassExtendsOpt(Class)
+              listener: handleNoType(Class)
+              listener: handleClassExtends(null, 1)
+            parseClassWithClauseOpt(Class)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(Class)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(abstract, class, null)
+          parseClassOrMixinOrExtensionBody(Class, DeclarationKind.Class, Class)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
+          listener: endClassDeclaration(abstract, })
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
+      reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+        listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+      parseClassOrNamedMixinApplication(null, null, augment, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(Class, classOrMixinDeclaration)
+        listener: handleNoTypeVariables(=)
+        listener: beginNamedMixinApplication(class, null, null, augment, Class)
+        parseNamedMixinApplication(Class, class, class)
+          listener: handleIdentifier(Object, typeReference)
+          listener: handleNoTypeArguments(with)
+          listener: handleType(Object, null)
+          parseMixinApplicationRest(Object)
+            parseTypeList(with)
+              listener: beginTypeList(Mixin)
+              listener: handleIdentifier(Mixin, typeReference)
+              listener: handleNoTypeArguments(;)
+              listener: handleType(Mixin, null)
+              listener: endTypeList(1)
+            listener: handleNamedMixinApplicationWithClause(with)
+          ensureSemicolon(Mixin)
+          listener: endNamedMixinApplication(class, class, =, null, ;)
+  listener: endTopLevelDeclaration(abstract)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(abstract)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
+      reportRecoverableError(augment, Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'abstract'., Try re-ordering the modifiers., {string: augment, string2: abstract}])
+        listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'augment' should be before the modifier 'abstract'., Try re-ordering the modifiers., {string: augment, string2: abstract}], augment, augment)
+      parseClassOrNamedMixinApplication(abstract, null, augment, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(Class, classOrMixinDeclaration)
+        listener: handleNoTypeVariables(=)
+        listener: beginNamedMixinApplication(abstract, abstract, null, augment, Class)
+        parseNamedMixinApplication(Class, abstract, class)
+          listener: handleIdentifier(Object, typeReference)
+          listener: handleNoTypeArguments(with)
+          listener: handleType(Object, null)
+          parseMixinApplicationRest(Object)
+            parseTypeList(with)
+              listener: beginTypeList(Mixin)
+              listener: handleIdentifier(Mixin, typeReference)
+              listener: handleNoTypeArguments(;)
+              listener: handleType(Mixin, null)
+              listener: endTypeList(1)
+            listener: handleNamedMixinApplicationWithClause(with)
+          ensureSemicolon(Mixin)
+          listener: endNamedMixinApplication(abstract, class, =, null, ;)
+  listener: endTopLevelDeclaration(augment)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(augment)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(;, mixin, null, Instance of 'DirectiveContext')
+      reportRecoverableErrorWithToken(augment, Instance of 'Template<(Token) => Message>')
+        listener: handleRecoverableError(Message[DuplicatedModifier, The modifier 'augment' was already specified., Try removing all but one occurrence of the modifier., {lexeme: augment}], augment, augment)
+      parseMixin(augment, mixin)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(mixin)
+        ensureIdentifier(mixin, classOrMixinDeclaration)
+          listener: handleIdentifier(Mixin, classOrMixinDeclaration)
+        listener: handleNoTypeVariables({)
+        listener: beginMixinDeclaration(augment, mixin, Mixin)
+        parseMixinHeaderOpt(Mixin, mixin)
+          parseMixinOnOpt(Mixin)
+            listener: handleMixinOn(null, 0)
+          parseClassOrMixinOrEnumImplementsOpt(Mixin)
+            listener: handleImplements(null, 0)
+          listener: handleMixinHeader(mixin)
+        parseClassOrMixinOrExtensionBody(Mixin, DeclarationKind.Mixin, Mixin)
+          listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Mixin, {)
+          notEofOrValue(}, })
+          listener: endClassOrMixinOrExtensionBody(DeclarationKind.Mixin, 0, {, })
+        listener: endMixinDeclaration(mixin, })
+  listener: endTopLevelDeclaration()
+  reportAllErrorTokens(augment)
+  listener: endCompilationUnit(29, )
diff --git a/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.parser.expect b/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.parser.expect
new file mode 100644
index 0000000..d3344edb
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.parser.expect
@@ -0,0 +1,81 @@
+augment augment method() {}
+augment external method();
+external augment method();
+
+augment augment void method() {}
+augment external void method();
+external augment void method();
+
+augment augment get getter => null;
+augment external get getter;
+external augment get getter;
+
+augment augment int get getter => 0;
+augment external int get getter;
+external augment int get getter;
+
+augment augment set setter(value) {}
+augment external set setter(value);
+external augment set setter(value);
+
+augment augment void set setter(value) {}
+augment external void set setter(value);
+external augment void set setter(value);
+
+augment augment var field;
+augment external var field;
+external augment var field;
+
+augment augment int field = 0;
+augment external int field;
+external augment int field;
+
+augment augment class Class {}
+abstract augment class Class {}
+
+augment augment class Class = Object with Mixin;
+abstract augment class Class = Object with Mixin;
+
+augment augment mixin Mixin {}
+
+
+augment[KeywordToken] augment[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] external[KeywordToken] method[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] method[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] external[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] get[KeywordToken] getter[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] get[KeywordToken] getter[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] external[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] external[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] int[StringToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] class[KeywordToken] Class[StringToken] {[BeginToken]}[SimpleToken]
+abstract[KeywordToken] augment[KeywordToken] class[KeywordToken] Class[StringToken] {[BeginToken]}[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] class[KeywordToken] Class[StringToken] =[SimpleToken] Object[StringToken] with[KeywordToken] Mixin[StringToken];[SimpleToken]
+abstract[KeywordToken] augment[KeywordToken] class[KeywordToken] Class[StringToken] =[SimpleToken] Object[StringToken] with[KeywordToken] Mixin[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] mixin[KeywordToken] Mixin[StringToken] {[BeginToken]}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.scanner.expect b/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.scanner.expect
new file mode 100644
index 0000000..d3344edb
--- /dev/null
+++ b/pkg/front_end/parser_testcases/augmentation/top_level_errors.dart.scanner.expect
@@ -0,0 +1,81 @@
+augment augment method() {}
+augment external method();
+external augment method();
+
+augment augment void method() {}
+augment external void method();
+external augment void method();
+
+augment augment get getter => null;
+augment external get getter;
+external augment get getter;
+
+augment augment int get getter => 0;
+augment external int get getter;
+external augment int get getter;
+
+augment augment set setter(value) {}
+augment external set setter(value);
+external augment set setter(value);
+
+augment augment void set setter(value) {}
+augment external void set setter(value);
+external augment void set setter(value);
+
+augment augment var field;
+augment external var field;
+external augment var field;
+
+augment augment int field = 0;
+augment external int field;
+external augment int field;
+
+augment augment class Class {}
+abstract augment class Class {}
+
+augment augment class Class = Object with Mixin;
+abstract augment class Class = Object with Mixin;
+
+augment augment mixin Mixin {}
+
+
+augment[KeywordToken] augment[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] external[KeywordToken] method[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] method[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] external[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] void[KeywordToken] method[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] null[KeywordToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] get[KeywordToken] getter[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] get[KeywordToken] getter[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken] =>[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] int[StringToken] get[KeywordToken] getter[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] external[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken] {[BeginToken]}[SimpleToken]
+augment[KeywordToken] external[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] void[KeywordToken] set[KeywordToken] setter[StringToken]([BeginToken]value[StringToken])[SimpleToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] var[KeywordToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] int[StringToken] field[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+augment[KeywordToken] external[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+external[KeywordToken] augment[KeywordToken] int[StringToken] field[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] class[KeywordToken] Class[StringToken] {[BeginToken]}[SimpleToken]
+abstract[KeywordToken] augment[KeywordToken] class[KeywordToken] Class[StringToken] {[BeginToken]}[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] class[KeywordToken] Class[StringToken] =[SimpleToken] Object[StringToken] with[KeywordToken] Mixin[StringToken];[SimpleToken]
+abstract[KeywordToken] augment[KeywordToken] class[KeywordToken] Class[StringToken] =[SimpleToken] Object[StringToken] with[KeywordToken] Mixin[StringToken];[SimpleToken]
+
+augment[KeywordToken] augment[KeywordToken] mixin[KeywordToken] Mixin[StringToken] {[BeginToken]}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.intertwined.expect b/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.intertwined.expect
index 272dfb5..8349189 100644
--- a/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/enhanced_enums/entries_with_type_arguments.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(enum)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, enum, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(, enum)
+    parseTopLevelKeywordDeclaration(, enum, null, Instance of 'DirectiveContext')
       parseEnum(enum)
         listener: beginUncategorizedTopLevelDeclaration(enum)
         ensureIdentifier(enum, enumDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/await_not_in_async.dart.expect b/pkg/front_end/parser_testcases/error_recovery/await_not_in_async.dart.expect
index ca25109..20669d0 100644
--- a/pkg/front_end/parser_testcases/error_recovery/await_not_in_async.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/await_not_in_async.dart.expect
@@ -8,7 +8,7 @@
   beginMetadataStar(Future)
   endMetadataStar(0)
   beginTopLevelMember(Future)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleIdentifier(Future, typeReference)
       beginTypeArguments(<)
         handleVoidKeyword(void)
@@ -35,7 +35,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleVoidKeyword(void)
       handleIdentifier(g, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/await_not_in_async.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/await_not_in_async.dart.intertwined.expect
index 0f6b7b2..79c6a54 100644
--- a/pkg/front_end/parser_testcases/error_recovery/await_not_in_async.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/await_not_in_async.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(Future)
-      parseTopLevelMethod(, null, , Instance of 'ComplexTypeInfo', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'ComplexTypeInfo', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         ensureIdentifier(, typeReference)
           listener: handleIdentifier(Future, typeReference)
         listener: beginTypeArguments(<)
@@ -69,8 +69,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(;, null, ;, Instance of 'VoidType', null, g, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'VoidType', null, g, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(g, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_00.dart.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_00.dart.expect
index 5689179..ee69b69 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_00.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_00.dart.expect
@@ -12,7 +12,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(good, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -32,7 +32,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(bad, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_00.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_00.dart.intertwined.expect
index 11a6354..6bebae6 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_00.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_00.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, good, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, good, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(good, topLevelFunctionDeclaration)
@@ -68,8 +68,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, bad, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, bad, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(bad, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.intertwined.expect
index 09f91b9..38d20d6 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -258,8 +257,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_02.dart.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_02.dart.expect
index 9598908..68a57b9 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_02.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_02.dart.expect
@@ -12,7 +12,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(UnmatchedToken([), null)
+    beginTopLevelMethod(UnmatchedToken([), null, null)
       handleVoidKeyword(void)
       handleIdentifier(foo, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_02.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_02.dart.intertwined.expect
index a83baa2..1d02334 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_02.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_02.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(UnmatchedToken([))
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(UnmatchedToken([), null, UnmatchedToken([), Instance of 'VoidType', null, foo, false)
-        listener: beginTopLevelMethod(UnmatchedToken([), null)
+      parseTopLevelMethod(UnmatchedToken([), null, null, UnmatchedToken([), Instance of 'VoidType', null, foo, false)
+        listener: beginTopLevelMethod(UnmatchedToken([), null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(foo, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_03.dart.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_03.dart.expect
index 9fea306..d14d975 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_03.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_03.dart.expect
@@ -20,7 +20,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(foo, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_03.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_03.dart.intertwined.expect
index ffe546c..03de5d4 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_03.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_03.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, foo, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, foo, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(foo, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_04.dart.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_04.dart.expect
index e8d4816..ddf140c 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_04.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_04.dart.expect
@@ -20,7 +20,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(foo, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_04.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_04.dart.intertwined.expect
index b4a6f0d..076e9d1 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_04.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_04.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, foo, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, foo, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(foo, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_05.dart.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_05.dart.expect
index aeaa26a..1de17cf 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_05.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_05.dart.expect
@@ -12,7 +12,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(UnmatchedToken([), null)
+    beginTopLevelMethod(UnmatchedToken([), null, null)
       handleVoidKeyword(void)
       handleIdentifier(foo, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_05.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_05.dart.intertwined.expect
index 3e561c0..d0d524e 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_05.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_05.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(UnmatchedToken([))
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(UnmatchedToken([), null, UnmatchedToken([), Instance of 'VoidType', null, foo, false)
-        listener: beginTopLevelMethod(UnmatchedToken([), null)
+      parseTopLevelMethod(UnmatchedToken([), null, null, UnmatchedToken([), Instance of 'VoidType', null, foo, false)
+        listener: beginTopLevelMethod(UnmatchedToken([), null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(foo, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_06.dart.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_06.dart.expect
index 2d94d81..94d65ab 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_06.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_06.dart.expect
@@ -12,7 +12,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(UnmatchedToken((), null)
+    beginTopLevelMethod(UnmatchedToken((), null, null)
       handleNoType(UnmatchedToken(())
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_06.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_06.dart.intertwined.expect
index e861c72..c02d432 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_06.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_06.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl(UnmatchedToken(())
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(UnmatchedToken((), null, UnmatchedToken((), Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(UnmatchedToken((), null)
+      parseTopLevelMethod(UnmatchedToken((), null, null, UnmatchedToken((), Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(UnmatchedToken((), null, null)
         listener: handleNoType(UnmatchedToken(())
         ensureIdentifierPotentiallyRecovered(UnmatchedToken((), topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/comment_on_non_ascii_identifier.dart.expect b/pkg/front_end/parser_testcases/error_recovery/comment_on_non_ascii_identifier.dart.expect
index f1f56f6..eb0334a 100644
--- a/pkg/front_end/parser_testcases/error_recovery/comment_on_non_ascii_identifier.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/comment_on_non_ascii_identifier.dart.expect
@@ -20,7 +20,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(NonAsciiIdentifierToken(198), null)
+    beginTopLevelMethod(NonAsciiIdentifierToken(198), null, null)
       handleNoType(NonAsciiIdentifierToken(198))
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/comment_on_non_ascii_identifier.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/comment_on_non_ascii_identifier.dart.intertwined.expect
index cace6c4..0e97664 100644
--- a/pkg/front_end/parser_testcases/error_recovery/comment_on_non_ascii_identifier.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/comment_on_non_ascii_identifier.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl(NonAsciiIdentifierToken(198))
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(NonAsciiIdentifierToken(198), null, NonAsciiIdentifierToken(198), Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(NonAsciiIdentifierToken(198), null)
+      parseTopLevelMethod(NonAsciiIdentifierToken(198), null, null, NonAsciiIdentifierToken(198), Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(NonAsciiIdentifierToken(198), null, null)
         listener: handleNoType(NonAsciiIdentifierToken(198))
         ensureIdentifierPotentiallyRecovered(NonAsciiIdentifierToken(198), topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_general.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_general.crash_dart.expect
index 23e1d5d..a7bf71f 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_general.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_general.crash_dart.expect
@@ -527,19 +527,19 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, })
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, })
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(Foo)
             handleType(int, null)
             handleIdentifier(Foo, fieldDeclaration)
             handleRecoverableError(MemberWithSameNameAsClass, Foo, Foo)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(A)
             handleType(int, null)
@@ -550,7 +550,7 @@
             handleNoFieldInitializer(,)
             handleIdentifier(B, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 3, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 3, int, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 19, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_general.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_general.crash_dart.intertwined.expect
index 4c6e830..2a71486 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_general.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_general.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -998,18 +997,18 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(}, null, null, null, null, null, null, }, Instance of 'SimpleType', Foo, DeclarationKind.Class, Foo, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, })
+              parseFields(}, null, null, null, null, null, null, null, }, Instance of 'SimpleType', Foo, DeclarationKind.Class, Foo, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, })
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(Foo)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(Foo, fieldDeclaration)
-                parseFieldInitializerOpt(Foo, Foo, null, null, null, null, DeclarationKind.Class, Foo)
+                parseFieldInitializerOpt(Foo, Foo, null, null, null, null, null, DeclarationKind.Class, Foo)
                   reportRecoverableError(Foo, MemberWithSameNameAsClass)
                     listener: handleRecoverableError(MemberWithSameNameAsClass, Foo, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
@@ -1017,26 +1016,26 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', A, DeclarationKind.Class, Foo, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', A, DeclarationKind.Class, Foo, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(A)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(A, fieldDeclaration)
-                parseFieldInitializerOpt(A, A, null, null, null, null, DeclarationKind.Class, Foo)
+                parseFieldInitializerOpt(A, A, null, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(,)
                 ensureIdentifier(,, fieldDeclaration)
                   listener: handleIdentifier(Foo, fieldDeclaration)
-                parseFieldInitializerOpt(Foo, Foo, null, null, null, null, DeclarationKind.Class, Foo)
+                parseFieldInitializerOpt(Foo, Foo, null, null, null, null, null, DeclarationKind.Class, Foo)
                   reportRecoverableError(Foo, MemberWithSameNameAsClass)
                     listener: handleRecoverableError(MemberWithSameNameAsClass, Foo, Foo)
                   listener: handleNoFieldInitializer(,)
                 ensureIdentifier(,, fieldDeclaration)
                   listener: handleIdentifier(B, fieldDeclaration)
-                parseFieldInitializerOpt(B, B, null, null, null, null, DeclarationKind.Class, Foo)
+                parseFieldInitializerOpt(B, B, null, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 3, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 3, int, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 19, {, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_get.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_get.crash_dart.intertwined.expect
index 927fcd5..5f8b5c5 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_get.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_get.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_return_type.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_return_type.crash_dart.intertwined.expect
index 5678e88..f28b41d 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_return_type.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_return_type.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_set.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_set.crash_dart.intertwined.expect
index 7dd414e..dc9b782 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_set.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_bad_name_set.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_get.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_get.dart.intertwined.expect
index 7438400..96d5b12 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_get.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_get.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_ok.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_ok.dart.intertwined.expect
index a01601a0..ac8a879 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_ok.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_ok.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.intertwined.expect
index 6a5900b..a4490e1 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -68,7 +67,7 @@
                 listener: beginMetadataStar(/)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(}, }, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, Foo)
+              recoverFromInvalidMember(}, }, null, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, Foo)
                 parseInvalidOperatorDeclaration(}, null, null, null, null, null, null, }, DeclarationKind.Class, Foo)
                   reportRecoverableError(/, MissingOperatorKeyword)
                     listener: handleRecoverableError(MissingOperatorKeyword, /, /)
@@ -163,7 +162,7 @@
                 listener: beginMetadataStar(.)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(}, }, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, Foo)
+              recoverFromInvalidMember(}, }, null, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, Foo)
                 reportRecoverableErrorWithToken(., Instance of 'Template<(Token) => Message>')
                   listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '.'., null, {lexeme: .}], ., .)
                 listener: handleInvalidMember(.)
@@ -174,7 +173,7 @@
                 listener: beginMetadataStar(/)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(., ., null, null, null, null, null, null, ., Instance of 'NoType', null, DeclarationKind.Class, Foo)
+              recoverFromInvalidMember(., ., null, null, null, null, null, null, null, ., Instance of 'NoType', null, DeclarationKind.Class, Foo)
                 parseInvalidOperatorDeclaration(., null, null, null, null, null, null, ., DeclarationKind.Class, Foo)
                   reportRecoverableError(/, MissingOperatorKeyword)
                     listener: handleRecoverableError(MissingOperatorKeyword, /, /)
@@ -269,7 +268,7 @@
                 listener: beginMetadataStar(/)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(}, }, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, Foo)
+              recoverFromInvalidMember(}, }, null, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, Foo)
                 parseInvalidOperatorDeclaration(}, null, null, null, null, null, null, }, DeclarationKind.Class, Foo)
                   reportRecoverableError(/, MissingOperatorKeyword)
                     listener: handleRecoverableError(MissingOperatorKeyword, /, /)
@@ -364,7 +363,7 @@
                 listener: beginMetadataStar(.)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(}, }, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, Foo)
+              recoverFromInvalidMember(}, }, null, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, Foo)
                 reportRecoverableErrorWithToken(., Instance of 'Template<(Token) => Message>')
                   listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '.'., null, {lexeme: .}], ., .)
                 listener: handleInvalidMember(.)
@@ -375,7 +374,7 @@
                 listener: beginMetadataStar(/)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(., ., null, null, null, null, null, null, ., Instance of 'NoType', null, DeclarationKind.Class, Foo)
+              recoverFromInvalidMember(., ., null, null, null, null, null, null, null, ., Instance of 'NoType', null, DeclarationKind.Class, Foo)
                 parseInvalidOperatorDeclaration(., null, null, null, null, null, null, ., DeclarationKind.Class, Foo)
                   reportRecoverableError(/, MissingOperatorKeyword)
                     listener: handleRecoverableError(MissingOperatorKeyword, /, /)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_return_type.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_return_type.dart.intertwined.expect
index b072c20..b4a45bc 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_return_type.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_return_type.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_set.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_set.dart.intertwined.expect
index 89458dc..33f6625 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_set.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_set.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/empty_await_for.dart.expect b/pkg/front_end/parser_testcases/error_recovery/empty_await_for.dart.expect
index 5d938b3..787cbc4 100644
--- a/pkg/front_end/parser_testcases/error_recovery/empty_await_for.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/empty_await_for.dart.expect
@@ -20,7 +20,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/empty_await_for.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/empty_await_for.dart.intertwined.expect
index 08ae948..32971a6 100644
--- a/pkg/front_end/parser_testcases/error_recovery/empty_await_for.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/empty_await_for.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/empty_for.dart.expect b/pkg/front_end/parser_testcases/error_recovery/empty_for.dart.expect
index 1b4fc95..b202fb4 100644
--- a/pkg/front_end/parser_testcases/error_recovery/empty_for.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/empty_for.dart.expect
@@ -20,7 +20,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/empty_for.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/empty_for.dart.intertwined.expect
index d816a82..fb0bab6 100644
--- a/pkg/front_end/parser_testcases/error_recovery/empty_for.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/empty_for.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/extension_member_contributor_test_completion.dart.expect b/pkg/front_end/parser_testcases/error_recovery/extension_member_contributor_test_completion.dart.expect
index 2741a0e..8bbaa29 100644
--- a/pkg/front_end/parser_testcases/error_recovery/extension_member_contributor_test_completion.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/extension_member_contributor_test_completion.dart.expect
@@ -114,7 +114,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -152,7 +152,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(g, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/extension_member_contributor_test_completion.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/extension_member_contributor_test_completion.dart.intertwined.expect
index fe4a38c..2ffe948 100644
--- a/pkg/front_end/parser_testcases/error_recovery/extension_member_contributor_test_completion.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/extension_member_contributor_test_completion.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(extension)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, extension, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(, extension)
+    parseTopLevelKeywordDeclaration(, extension, null, Instance of 'DirectiveContext')
       parseExtension(extension)
         listener: beginExtensionDeclarationPrelude(extension)
         listener: beginTypeVariables(<)
@@ -181,8 +180,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
@@ -259,8 +258,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, g, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, g, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(g, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/for_in_with_colon.dart.expect b/pkg/front_end/parser_testcases/error_recovery/for_in_with_colon.dart.expect
index 6e185cd..d5b73c8 100644
--- a/pkg/front_end/parser_testcases/error_recovery/for_in_with_colon.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/for_in_with_colon.dart.expect
@@ -8,7 +8,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/for_in_with_colon.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/for_in_with_colon.dart.intertwined.expect
index c21fea8..bcc5d77 100644
--- a/pkg/front_end/parser_testcases/error_recovery/for_in_with_colon.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/for_in_with_colon.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_000032.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_000032.dart.expect
index 9a0072b..03b7aca 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_000032.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_000032.dart.expect
@@ -36,7 +36,7 @@
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(C, typeReference)
             beginTypeArguments(<)
               handleRecoverableError(Message[ExpectedType, Expected a type, but got '}'., null, {lexeme: }}], }, })
@@ -49,7 +49,7 @@
             handleIdentifier(, fieldDeclaration)
             handleNoFieldInitializer(})
             handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], <, <)
-          endClassFields(null, null, null, null, null, null, 1, C, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, C, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
     endClassDeclaration(class, })
@@ -57,7 +57,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_000032.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_000032.dart.intertwined.expect
index 0267bd5..85024cb 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_000032.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_000032.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,9 +31,9 @@
                 listener: beginMetadataStar(C)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(>, {, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', null, DeclarationKind.Class, C)
-                parseFields({, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', }, DeclarationKind.Class, C, false)
-                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              recoverFromInvalidMember(>, {, null, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', null, DeclarationKind.Class, C)
+                parseFields({, null, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', }, DeclarationKind.Class, C, false)
+                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                   ensureIdentifier({, typeReference)
                     listener: handleIdentifier(C, typeReference)
                   listener: beginTypeArguments(<)
@@ -52,13 +51,13 @@
                         listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {lexeme: }}], }, })
                       rewriter()
                     listener: handleIdentifier(, fieldDeclaration)
-                  parseFieldInitializerOpt(, , null, null, null, null, DeclarationKind.Class, C)
+                  parseFieldInitializerOpt(, , null, null, null, null, null, DeclarationKind.Class, C)
                     listener: handleNoFieldInitializer(})
                   ensureSemicolon()
                     reportRecoverableError(<, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
                       listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], <, <)
                     rewriter()
-                  listener: endClassFields(null, null, null, null, null, null, 1, C, ;)
+                  listener: endClassFields(null, null, null, null, null, null, null, 1, C, ;)
                 listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
@@ -71,8 +70,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_22313.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_22313.dart.intertwined.expect
index f0f0ce6..16e191e 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_22313.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_22313.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -34,8 +33,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -62,8 +60,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -130,8 +127,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -214,8 +210,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_22314.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_22314.dart.expect
index 1313ed6..96ef7ef 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_22314.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_22314.dart.expect
@@ -12,7 +12,7 @@
   beginMetadataStar(const)
   endMetadataStar(0)
   beginTopLevelMember(const)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, const, )
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, const, )
       handleNoType(const)
       handleIdentifier(annotation, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -35,13 +35,13 @@
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
             handleIdentifier(String, typeReference)
             handleNoTypeArguments(message)
             handleType(String, null)
             handleIdentifier(message, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(const)
         endMetadataStar(0)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_22314.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_22314.dart.intertwined.expect
index 8826b80..ed69ecd 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_22314.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_22314.dart.intertwined.expect
@@ -8,12 +8,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(const)
-      parseFields(, null, null, null, null, null, const, const, Instance of 'NoType', annotation, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, const, )
+      parseFields(, null, null, null, null, null, null, const, const, Instance of 'NoType', annotation, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, const, )
         listener: handleNoType(const)
         ensureIdentifierPotentiallyRecovered(const, topLevelVariableDeclaration, false)
           listener: handleIdentifier(annotation, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(annotation, annotation, null, null, null, const, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(annotation, annotation, null, null, null, null, const, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -28,8 +28,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -54,16 +53,16 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, final, final, Instance of 'SimpleType', message, DeclarationKind.Class, Annotation, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+              parseFields({, null, null, null, null, null, null, final, final, Instance of 'SimpleType', message, DeclarationKind.Class, Annotation, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
                 listener: handleIdentifier(String, typeReference)
                 listener: handleNoTypeArguments(message)
                 listener: handleType(String, null)
                 ensureIdentifierPotentiallyRecovered(String, fieldDeclaration, false)
                   listener: handleIdentifier(message, fieldDeclaration)
-                parseFieldInitializerOpt(message, message, null, null, null, final, DeclarationKind.Class, Annotation)
+                parseFieldInitializerOpt(message, message, null, null, null, null, final, DeclarationKind.Class, Annotation)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, const)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Annotation)
@@ -112,8 +111,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -148,8 +146,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_26073.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_26073.dart.intertwined.expect
index 10ddbdb..8eca861 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_26073.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_26073.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(, typedef)
+    parseTopLevelKeywordDeclaration(, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -44,8 +43,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -79,8 +77,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -120,8 +117,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -158,8 +154,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -203,8 +198,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -249,8 +243,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -306,8 +299,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -386,8 +378,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -458,8 +449,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -476,8 +466,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_26810.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_26810.dart.intertwined.expect
index 08cc15d..9bf3846 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_26810.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_26810.dart.intertwined.expect
@@ -6,9 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(abstract)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
-        parseTopLevelKeywordModifiers(abstract, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(abstract, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_26810_and.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_26810_and.dart.intertwined.expect
index 4dfa6f2..84c30ba 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_26810_and.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_26810_and.dart.intertwined.expect
@@ -6,9 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(abstract)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
-        parseTopLevelKeywordModifiers(abstract, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(abstract, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_26810_or.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_26810_or.dart.intertwined.expect
index d7c2cfa..7930c05 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_26810_or.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_26810_or.dart.intertwined.expect
@@ -6,9 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(abstract)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
-        parseTopLevelKeywordModifiers(abstract, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(abstract, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_38415.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_38415.crash_dart.expect
index 742472b..c7791cb 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_38415.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_38415.crash_dart.expect
@@ -30,7 +30,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(UnmatchedToken({), null)
+    beginTopLevelMethod(UnmatchedToken({), null, null)
       handleNoType(UnmatchedToken({))
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_38415.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_38415.crash_dart.intertwined.expect
index 7e5afad..dc4c233 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_38415.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_38415.crash_dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl(UnmatchedToken({))
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(UnmatchedToken({), null, UnmatchedToken({), Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(UnmatchedToken({), null)
+      parseTopLevelMethod(UnmatchedToken({), null, null, UnmatchedToken({), Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(UnmatchedToken({), null, null)
         listener: handleNoType(UnmatchedToken({))
         ensureIdentifierPotentiallyRecovered(UnmatchedToken({), topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39024.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39024.crash_dart.expect
index 33f3de8..7ff671e 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39024.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39024.crash_dart.expect
@@ -34,7 +34,7 @@
   beginMetadataStar(n)
   endMetadataStar(0)
   beginTopLevelMember(n)
-    beginTopLevelMethod(UnmatchedToken(<), null)
+    beginTopLevelMethod(UnmatchedToken(<), null, null)
       handleIdentifier(n, typeReference)
       beginTypeArguments(<)
         handleIdentifier(S, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39024.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39024.crash_dart.intertwined.expect
index cc9940e..6ecd64d 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39024.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39024.crash_dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(UnmatchedToken(<))
       listener: beginTopLevelMember(n)
-      parseTopLevelMethod(UnmatchedToken(<), null, UnmatchedToken(<), Instance of 'ComplexTypeInfo', null, e, false)
-        listener: beginTopLevelMethod(UnmatchedToken(<), null)
+      parseTopLevelMethod(UnmatchedToken(<), null, null, UnmatchedToken(<), Instance of 'ComplexTypeInfo', null, e, false)
+        listener: beginTopLevelMethod(UnmatchedToken(<), null, null)
         ensureIdentifier(UnmatchedToken(<), typeReference)
           listener: handleIdentifier(n, typeReference)
         listener: beginTypeArguments(<)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39026.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39026.crash_dart.intertwined.expect
index becebb3..a705fb2 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39026.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39026.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39026_prime.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39026_prime.crash_dart.intertwined.expect
index 8b1083d..85401d7 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39026_prime.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39026_prime.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39033.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39033.crash_dart.intertwined.expect
index dcd3f1d..9c65a46 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39033.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39033.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(, typedef)
+    parseTopLevelKeywordDeclaration(, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39060.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39060.dart.expect
index de5b119..0515832 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39060.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39060.dart.expect
@@ -20,7 +20,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39060.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39060.dart.intertwined.expect
index bb5e98d..0764dff 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39060.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39060.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39202.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39202.crash_dart.expect
index 16300c9..c93e4f0 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39202.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39202.crash_dart.expect
@@ -46,7 +46,7 @@
   beginMetadataStar(async)
   endMetadataStar(0)
   beginTopLevelMember(async)
-    beginTopLevelMethod(), null)
+    beginTopLevelMethod(), null, null)
       handleNoType())
       handleIdentifier(async, topLevelFunctionDeclaration)
       handleNoTypeVariables(=>)
@@ -65,7 +65,7 @@
   beginMetadataStar(b)
   endMetadataStar(0)
   beginTopLevelMember(b)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(b, typeReference)
       beginTypeArguments(<)
         handleIdentifier(c, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39202.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39202.crash_dart.intertwined.expect
index a0bb58f..a00dc01 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39202.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39202.crash_dart.intertwined.expect
@@ -29,8 +29,8 @@
     parseTopLevelMemberImpl())
       listener: beginTopLevelMember(async)
       isReservedKeyword(=>)
-      parseTopLevelMethod(), null, ), Instance of 'NoType', null, async, false)
-        listener: beginTopLevelMethod(), null)
+      parseTopLevelMethod(), null, null, ), Instance of 'NoType', null, async, false)
+        listener: beginTopLevelMethod(), null, null)
         listener: handleNoType())
         ensureIdentifierPotentiallyRecovered(), topLevelFunctionDeclaration, false)
           listener: handleIdentifier(async, topLevelFunctionDeclaration)
@@ -76,8 +76,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(b)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', $, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', $, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         ensureIdentifier(;, typeReference)
           listener: handleIdentifier(b, typeReference)
         listener: beginTypeArguments(<)
@@ -95,7 +95,7 @@
               listener: // WARNING: Reporting at eof for .
             rewriter()
           listener: handleIdentifier(, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(, , null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(, , null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer()
         ensureSemicolon()
           reportRecoverableError(>, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.intertwined.expect
index d1667e3..4a16efa 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -68,7 +67,7 @@
                 listener: beginMetadataStar(/)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(}, }, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, C)
+              recoverFromInvalidMember(}, }, null, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, C)
                 parseInvalidOperatorDeclaration(}, null, null, null, null, null, null, }, DeclarationKind.Class, C)
                   reportRecoverableError(/, MissingOperatorKeyword)
                     listener: handleRecoverableError(MissingOperatorKeyword, /, /)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39958_01.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39958_01.dart.expect
index b18d71f..9e6d9e9 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39958_01.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39958_01.dart.expect
@@ -8,7 +8,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleRecoverableError(VoidWithTypeArguments, <, <)
       beginTypeArguments(<)
         handleIdentifier(int, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39958_01.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39958_01.dart.intertwined.expect
index f36fedc..a37a62b 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39958_01.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39958_01.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         reportRecoverableError(<, VoidWithTypeArguments)
           listener: handleRecoverableError(VoidWithTypeArguments, <, <)
         listener: beginTypeArguments(<)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39958_02.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39958_02.dart.expect
index ea1fdaf..2436bad 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39958_02.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39958_02.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(dynamic)
   endMetadataStar(0)
   beginTopLevelMember(dynamic)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleIdentifier(dynamic, typeReference)
       beginTypeArguments(<)
         handleIdentifier(int, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39958_02.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39958_02.dart.intertwined.expect
index 8126215..02c6c97 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39958_02.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39958_02.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(dynamic)
-      parseTopLevelMethod(, null, , Instance of 'SimpleTypeWith1Argument', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'SimpleTypeWith1Argument', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleIdentifier(dynamic, typeReference)
         listener: beginTypeArguments(<)
         listener: handleIdentifier(int, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39958_03.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39958_03.dart.expect
index c630e6a..5db84c0 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39958_03.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39958_03.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleIdentifier(int, typeReference)
       beginTypeArguments(<)
         handleIdentifier(int, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39958_03.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39958_03.dart.intertwined.expect
index aefdb96..cdd8778 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39958_03.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39958_03.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(, null, , Instance of 'SimpleTypeWith1Argument', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'SimpleTypeWith1Argument', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: beginTypeArguments(<)
         listener: handleIdentifier(int, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39958_04.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39958_04.dart.expect
index bb5654f..1c99adb 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39958_04.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39958_04.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(Foo)
   endMetadataStar(0)
   beginTopLevelMember(Foo)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleIdentifier(Foo, typeReference)
       beginTypeArguments(<)
         handleIdentifier(int, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39958_04.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39958_04.dart.intertwined.expect
index cc0c855..ecf04b2 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39958_04.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39958_04.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(Foo)
-      parseTopLevelMethod(, null, , Instance of 'SimpleTypeWith1Argument', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'SimpleTypeWith1Argument', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleIdentifier(Foo, typeReference)
         listener: beginTypeArguments(<)
         listener: handleIdentifier(int, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_41265.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_41265.crash_dart.expect
index a9912eb..b9aaf43 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_41265.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_41265.crash_dart.expect
@@ -41,7 +41,7 @@
         handleNoType(T)
       endTypeVariable(>, 0, null, null)
     endTypeVariables(<, >)
-    beginMixinDeclaration(mixin, M)
+    beginMixinDeclaration(null, mixin, M)
       handleMixinOn(null, 0)
       handleImplements(null, 0)
       handleMixinHeader(mixin)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_41265.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_41265.crash_dart.intertwined.expect
index 1cddebb..c7d638a 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_41265.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_41265.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -42,9 +41,8 @@
     parseMetadataStar(})
       listener: beginMetadataStar(mixin)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, mixin, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(}, mixin)
-      parseMixin(mixin)
+    parseTopLevelKeywordDeclaration(}, mixin, null, Instance of 'DirectiveContext')
+      parseMixin(null, mixin)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(mixin)
         ensureIdentifier(mixin, classOrMixinDeclaration)
           listener: handleIdentifier(M, classOrMixinDeclaration)
@@ -57,7 +55,7 @@
         listener: handleNoType(T)
         listener: endTypeVariable(>, 0, null, null)
         listener: endTypeVariables(<, >)
-        listener: beginMixinDeclaration(mixin, M)
+        listener: beginMixinDeclaration(null, mixin, M)
         parseMixinHeaderOpt(>, mixin)
           parseMixinOnOpt(>)
             listener: handleMixinOn(null, 0)
@@ -74,8 +72,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229.crash_dart.expect
index 3a61651..686342b 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229.crash_dart.expect
@@ -26,7 +26,7 @@
   beginTopLevelMember(Stream)
     handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
     // WARNING: Reporting at eof for .
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
       handleIdentifier(Stream, typeReference)
       beginTypeArguments(<)
         handleIdentifier(List, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229.crash_dart.intertwined.expect
index c9a97e6..dda2036 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229.crash_dart.intertwined.expect
@@ -13,8 +13,8 @@
           listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
           listener: // WARNING: Reporting at eof for .
         rewriter()
-      parseFields(, null, null, null, null, null, null, , Instance of 'ComplexTypeInfo', , DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+      parseFields(, null, null, null, null, null, null, null, , Instance of 'ComplexTypeInfo', , DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
         ensureIdentifier(, typeReference)
           listener: handleIdentifier(Stream, typeReference)
         listener: beginTypeArguments(<)
@@ -38,7 +38,7 @@
               listener: // WARNING: Reporting at eof for .
             rewriter()
           listener: handleIdentifier(, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(, , null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(, , null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer()
         ensureSemicolon()
           reportRecoverableError(>, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime.crash_dart.expect
index 48888ea..18df5f8 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime.crash_dart.expect
@@ -20,7 +20,7 @@
   beginTopLevelMember(Stream)
     handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
     // WARNING: Reporting at eof for .
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
       handleIdentifier(Stream, typeReference)
       beginTypeArguments(<)
         handleIdentifier(List, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime.crash_dart.intertwined.expect
index f8c3b8a..2fe91c0 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime.crash_dart.intertwined.expect
@@ -13,8 +13,8 @@
           listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
           listener: // WARNING: Reporting at eof for .
         rewriter()
-      parseFields(, null, null, null, null, null, null, , Instance of 'ComplexTypeInfo', , DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+      parseFields(, null, null, null, null, null, null, null, , Instance of 'ComplexTypeInfo', , DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
         ensureIdentifier(, typeReference)
           listener: handleIdentifier(Stream, typeReference)
         listener: beginTypeArguments(<)
@@ -33,7 +33,7 @@
         listener: handleType(Stream, null)
         ensureIdentifierPotentiallyRecovered(>, topLevelVariableDeclaration, false)
           listener: handleIdentifier(, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(, , null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(, , null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer()
         ensureSemicolon()
           reportRecoverableError(>, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_2.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_2.crash_dart.expect
index 2d08e02..ddb254a 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_2.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_2.crash_dart.expect
@@ -8,7 +8,7 @@
   beginMetadataStar(Stream)
   endMetadataStar(0)
   beginTopLevelMember(Stream)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleIdentifier(Stream, typeReference)
       beginTypeArguments(<)
         handleIdentifier(List, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_2.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_2.crash_dart.intertwined.expect
index 485e5a0..e904492 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_2.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_2.crash_dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(Stream)
-      parseTopLevelMethod(, null, , Instance of 'ComplexTypeInfo', null, foo, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'ComplexTypeInfo', null, foo, false)
+        listener: beginTopLevelMethod(, null, null)
         ensureIdentifier(, typeReference)
           listener: handleIdentifier(Stream, typeReference)
         listener: beginTypeArguments(<)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_3.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_3.crash_dart.expect
index 3225ca5..ddccf96 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_3.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_3.crash_dart.expect
@@ -22,7 +22,7 @@
   beginTopLevelMember(Stream)
     handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
     // WARNING: Reporting at eof for .
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
       handleIdentifier(Stream, typeReference)
       beginTypeArguments(<)
         handleIdentifier(List, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_3.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_3.crash_dart.intertwined.expect
index 5885b58..9c87b71 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_3.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_3.crash_dart.intertwined.expect
@@ -13,8 +13,8 @@
           listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
           listener: // WARNING: Reporting at eof for .
         rewriter()
-      parseFields(, null, null, null, null, null, null, , Instance of 'ComplexTypeInfo', , DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+      parseFields(, null, null, null, null, null, null, null, , Instance of 'ComplexTypeInfo', , DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
         ensureIdentifier(, typeReference)
           listener: handleIdentifier(Stream, typeReference)
         listener: beginTypeArguments(<)
@@ -34,7 +34,7 @@
               listener: // WARNING: Reporting at eof for .
             rewriter()
           listener: handleIdentifier(, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(, , null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(, , null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer()
         ensureSemicolon()
           reportRecoverableError(>, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_4.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_4.crash_dart.expect
index 39d125c..3773f15 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_4.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_4.crash_dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(Stream)
   endMetadataStar(0)
   beginTopLevelMember(Stream)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
       handleIdentifier(Stream, typeReference)
       beginTypeArguments(<)
         handleIdentifier(List, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_4.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_4.crash_dart.intertwined.expect
index f4ac12c..2187353 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_4.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_4.crash_dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(Stream)
-      parseFields(, null, null, null, null, null, null, , Instance of 'ComplexTypeInfo', y, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+      parseFields(, null, null, null, null, null, null, null, , Instance of 'ComplexTypeInfo', y, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
         ensureIdentifier(, typeReference)
           listener: handleIdentifier(Stream, typeReference)
         listener: beginTypeArguments(<)
@@ -24,7 +24,7 @@
         listener: handleType(Stream, null)
         ensureIdentifierPotentiallyRecovered(>, topLevelVariableDeclaration, false)
           listener: handleIdentifier(y, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(y, y, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(y, y, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, null, null, 1, Stream, ;)
   listener: endTopLevelDeclaration()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_5.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_5.dart.expect
index c0c945b..3283dde 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_5.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_5.dart.expect
@@ -12,7 +12,7 @@
   beginMetadataStar(hello)
   endMetadataStar(0)
   beginTopLevelMember(hello)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
       handleRecoverableError(MissingConstFinalVarOrType, hello, hello)
       handleNoType()
       handleIdentifier(hello, topLevelVariableDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_5.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_5.dart.intertwined.expect
index ddc263d..906e1c3 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_5.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_5.dart.intertwined.expect
@@ -9,14 +9,14 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(hello)
       isReservedKeyword()
-      parseFields(, null, null, null, null, null, null, , Instance of 'NoType', hello, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+      parseFields(, null, null, null, null, null, null, null, , Instance of 'NoType', hello, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
         reportRecoverableError(hello, MissingConstFinalVarOrType)
           listener: handleRecoverableError(MissingConstFinalVarOrType, hello, hello)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelVariableDeclaration, false)
           listener: handleIdentifier(hello, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(hello, hello, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(hello, hello, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer()
         ensureSemicolon(hello)
           reportRecoverableError(hello, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_6.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_6.dart.expect
index bbe91f5..5128e2e 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_6.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_6.dart.expect
@@ -12,7 +12,7 @@
   beginMetadataStar(const)
   endMetadataStar(0)
   beginTopLevelMember(const)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, const, )
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, const, )
       handleNoType(const)
       handleIdentifier(foo, topLevelVariableDeclaration)
       handleRecoverableError(Message[ConstFieldWithoutInitializer, The const variable 'foo' must be initialized., Try adding an initializer ('= expression') to the declaration., {name: foo}], foo, foo)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_6.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_6.dart.intertwined.expect
index 5b2699c..dc2d106 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_6.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_6.dart.intertwined.expect
@@ -8,12 +8,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(const)
-      parseFields(, null, null, null, null, null, const, const, Instance of 'NoType', foo, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, const, )
+      parseFields(, null, null, null, null, null, null, const, const, Instance of 'NoType', foo, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, const, )
         listener: handleNoType(const)
         ensureIdentifierPotentiallyRecovered(const, topLevelVariableDeclaration, false)
           listener: handleIdentifier(foo, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(foo, foo, null, null, null, const, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(foo, foo, null, null, null, null, const, DeclarationKind.TopLevel, null)
           reportRecoverableError(foo, Message[ConstFieldWithoutInitializer, The const variable 'foo' must be initialized., Try adding an initializer ('= expression') to the declaration., {name: foo}])
             listener: handleRecoverableError(Message[ConstFieldWithoutInitializer, The const variable 'foo' must be initialized., Try adding an initializer ('= expression') to the declaration., {name: foo}], foo, foo)
           listener: handleNoFieldInitializer()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42267.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42267.dart.expect
index 60b08d7..7d7451a 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42267.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42267.dart.expect
@@ -20,7 +20,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42267.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42267.dart.intertwined.expect
index 172bb90..e3deae7 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42267.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42267.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_43090.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_43090.crash_dart.intertwined.expect
index b6a4348..245c817 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_43090.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_43090.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(, typedef)
+    parseTopLevelKeywordDeclaration(, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_43090_prime_01.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_43090_prime_01.crash_dart.intertwined.expect
index 73dba53..eb0e052 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_43090_prime_01.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_43090_prime_01.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(, typedef)
+    parseTopLevelKeywordDeclaration(, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_43090_prime_02.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_43090_prime_02.crash_dart.intertwined.expect
index f2ed397..14633f3 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_43090_prime_02.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_43090_prime_02.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(, typedef)
+    parseTopLevelKeywordDeclaration(, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_44785.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_44785.crash_dart.expect
index 6e0c9728..1e45c25 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_44785.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_44785.crash_dart.expect
@@ -20,7 +20,7 @@
   beginMetadataStar(foo)
   endMetadataStar(0)
   beginTopLevelMember(foo)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(foo, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -80,7 +80,7 @@
   beginMetadataStar(bar)
   endMetadataStar(0)
   beginTopLevelMember(bar)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(bar, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_44785.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_44785.crash_dart.intertwined.expect
index 5369ad7..152a677 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_44785.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_44785.crash_dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(foo)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, foo, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, foo, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(foo, topLevelFunctionDeclaration)
@@ -164,8 +164,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(bar)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, bar, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, bar, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(bar, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_44785_prime_1.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_44785_prime_1.crash_dart.expect
index 624aaa6..999435a 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_44785_prime_1.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_44785_prime_1.crash_dart.expect
@@ -28,7 +28,7 @@
   beginMetadataStar(foo)
   endMetadataStar(0)
   beginTopLevelMember(foo)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(foo, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -87,7 +87,7 @@
   beginMetadataStar(foo2)
   endMetadataStar(0)
   beginTopLevelMember(foo2)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(foo2, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -165,7 +165,7 @@
   beginMetadataStar(bar)
   endMetadataStar(0)
   beginTopLevelMember(bar)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(bar, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -224,7 +224,7 @@
   beginMetadataStar(bar2)
   endMetadataStar(0)
   beginTopLevelMember(bar2)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(bar2, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_44785_prime_1.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_44785_prime_1.crash_dart.intertwined.expect
index 8aeda7b..7f659af 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_44785_prime_1.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_44785_prime_1.crash_dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(foo)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, foo, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, foo, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(foo, topLevelFunctionDeclaration)
@@ -161,8 +161,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(foo2)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, foo2, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, foo2, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(foo2, topLevelFunctionDeclaration)
@@ -373,8 +373,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(bar)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, bar, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, bar, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(bar, topLevelFunctionDeclaration)
@@ -525,8 +525,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(bar2)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, bar2, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, bar2, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(bar2, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_44785_prime_2.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_44785_prime_2.crash_dart.expect
index cc590c5..4d1bbe5 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_44785_prime_2.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_44785_prime_2.crash_dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(foo)
   endMetadataStar(0)
   beginTopLevelMember(foo)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(foo, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -60,7 +60,7 @@
   beginMetadataStar(foo2)
   endMetadataStar(0)
   beginTopLevelMember(foo2)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(foo2, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -136,7 +136,7 @@
   beginMetadataStar(bar)
   endMetadataStar(0)
   beginTopLevelMember(bar)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(bar, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -194,7 +194,7 @@
   beginMetadataStar(bar2)
   endMetadataStar(0)
   beginTopLevelMember(bar2)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(bar2, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_44785_prime_2.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_44785_prime_2.crash_dart.intertwined.expect
index 9d01254..7e08a7b 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_44785_prime_2.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_44785_prime_2.crash_dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(foo)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, foo, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, foo, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(foo, topLevelFunctionDeclaration)
@@ -135,8 +135,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(foo2)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, foo2, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, foo2, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(foo2, topLevelFunctionDeclaration)
@@ -294,8 +294,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(bar)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, bar, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, bar, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(bar, topLevelFunctionDeclaration)
@@ -420,8 +420,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(bar2)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, bar2, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, bar2, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(bar2, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251.dart.expect
index d60c06a..7e9b174 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251.dart.expect
@@ -32,7 +32,7 @@
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -60,12 +60,12 @@
               endTypeArguments(2, <, >)
               handleLiteralSetOrMap(0, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -92,12 +92,12 @@
               endTypeArguments(2, <, >)
               handleLiteralSetOrMap(0, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -114,12 +114,12 @@
               handleNoTypeArguments({)
               handleLiteralSetOrMap(0, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -149,12 +149,12 @@
               endArguments(0, (, ))
               handleSend(Map, ;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -173,12 +173,12 @@
               endArguments(0, (, ))
               handleSend(Map, ;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -210,12 +210,12 @@
               handleLiteralMapEntry(:, })
               handleLiteralSetOrMap(1, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -236,12 +236,12 @@
               handleLiteralMapEntry(:, })
               handleLiteralSetOrMap(1, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -272,12 +272,12 @@
               handleLiteralMapEntry(:, })
               handleLiteralSetOrMap(1, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -297,7 +297,7 @@
               handleLiteralMapEntry(:, })
               handleLiteralSetOrMap(1, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251.dart.intertwined.expect
index 352312d..f077f6c 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,8 +31,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo1, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+              parseFields({, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo1, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -47,7 +46,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo1, fieldDeclaration)
-                parseFieldInitializerOpt(foo1, foo1, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo1, foo1, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -75,7 +74,7 @@
                                   parseLiteralSetOrMapSuffix(>, null)
                                     listener: handleLiteralSetOrMap(0, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -83,8 +82,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo2, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo2, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -98,7 +97,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo2, fieldDeclaration)
-                parseFieldInitializerOpt(foo2, foo2, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo2, foo2, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -120,7 +119,7 @@
                             parseLiteralSetOrMapSuffix(>, null)
                               listener: handleLiteralSetOrMap(0, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -128,8 +127,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo3, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo3, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -143,7 +142,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo3, fieldDeclaration)
-                parseFieldInitializerOpt(foo3, foo3, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo3, foo3, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -159,7 +158,7 @@
                                 parseLiteralSetOrMapSuffix(Map, null)
                                   listener: handleLiteralSetOrMap(0, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -167,8 +166,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo4, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo4, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -182,7 +181,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo4, fieldDeclaration)
-                parseFieldInitializerOpt(foo4, foo4, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo4, foo4, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -213,7 +212,7 @@
                                     listener: endArguments(0, (, ))
                               listener: handleSend(Map, ;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -221,8 +220,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo5, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo5, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -236,7 +235,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo5, fieldDeclaration)
-                parseFieldInitializerOpt(foo5, foo5, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo5, foo5, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -256,7 +255,7 @@
                                     listener: endArguments(0, (, ))
                               listener: handleSend(Map, ;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -264,8 +263,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo6, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo6, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -279,7 +278,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo6, fieldDeclaration)
-                parseFieldInitializerOpt(foo6, foo6, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo6, foo6, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -322,7 +321,7 @@
                                     listener: handleLiteralMapEntry(:, })
                                     listener: handleLiteralSetOrMap(1, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -330,8 +329,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo7, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo7, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -345,7 +344,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo7, fieldDeclaration)
-                parseFieldInitializerOpt(foo7, foo7, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo7, foo7, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -376,7 +375,7 @@
                                   listener: handleLiteralMapEntry(:, })
                                   listener: handleLiteralSetOrMap(1, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -384,8 +383,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo8, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo8, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -399,7 +398,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo8, fieldDeclaration)
-                parseFieldInitializerOpt(foo8, foo8, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo8, foo8, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -436,7 +435,7 @@
                               listener: handleLiteralMapEntry(:, })
                               listener: handleLiteralSetOrMap(1, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -444,8 +443,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo9, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo9, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -459,7 +458,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo9, fieldDeclaration)
-                parseFieldInitializerOpt(foo9, foo9, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo9, foo9, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -484,7 +483,7 @@
                             listener: handleLiteralMapEntry(:, })
                             listener: handleLiteralSetOrMap(1, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251_const.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251_const.dart.expect
index c78bdb7..675a55c 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251_const.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251_const.dart.expect
@@ -32,7 +32,7 @@
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -62,12 +62,12 @@
                 handleLiteralSetOrMap(0, {, const, }, false)
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -96,12 +96,12 @@
                 handleLiteralSetOrMap(0, {, const, }, false)
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -120,12 +120,12 @@
                 handleLiteralSetOrMap(0, {, const, }, false)
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -159,12 +159,12 @@
                 endArguments(0, (, ))
               endConstExpression(const)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -187,12 +187,12 @@
                 endArguments(0, (, ))
               endConstExpression(const)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -226,12 +226,12 @@
                 handleLiteralSetOrMap(1, {, const, }, false)
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -254,12 +254,12 @@
                 handleLiteralSetOrMap(1, {, const, }, false)
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -292,12 +292,12 @@
                 handleLiteralSetOrMap(1, {, const, }, false)
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -319,7 +319,7 @@
                 handleLiteralSetOrMap(1, {, const, }, false)
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251_const.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251_const.dart.intertwined.expect
index b5959b9a..41f0d2a 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251_const.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251_const.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,8 +31,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo1, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+              parseFields({, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo1, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -47,7 +46,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo1, fieldDeclaration)
-                parseFieldInitializerOpt(foo1, foo1, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo1, foo1, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -74,7 +73,7 @@
                                 listener: handleLiteralSetOrMap(0, {, const, }, false)
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -82,8 +81,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo2, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo2, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -97,7 +96,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo2, fieldDeclaration)
-                parseFieldInitializerOpt(foo2, foo2, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo2, foo2, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -122,7 +121,7 @@
                                 listener: handleLiteralSetOrMap(0, {, const, }, false)
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -130,8 +129,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo3, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo3, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -145,7 +144,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo3, fieldDeclaration)
-                parseFieldInitializerOpt(foo3, foo3, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo3, foo3, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -160,7 +159,7 @@
                               listener: handleLiteralSetOrMap(0, {, const, }, false)
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -168,8 +167,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo4, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo4, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -183,7 +182,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo4, fieldDeclaration)
-                parseFieldInitializerOpt(foo4, foo4, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo4, foo4, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -216,7 +215,7 @@
                                 listener: endArguments(0, (, ))
                             listener: endConstExpression(const)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -224,8 +223,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo5, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo5, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -239,7 +238,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo5, fieldDeclaration)
-                parseFieldInitializerOpt(foo5, foo5, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo5, foo5, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -261,7 +260,7 @@
                                 listener: endArguments(0, (, ))
                             listener: endConstExpression(const)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -269,8 +268,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo6, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo6, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -284,7 +283,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo6, fieldDeclaration)
-                parseFieldInitializerOpt(foo6, foo6, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo6, foo6, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -326,7 +325,7 @@
                                 listener: handleLiteralSetOrMap(1, {, const, }, false)
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -334,8 +333,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo7, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo7, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -349,7 +348,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo7, fieldDeclaration)
-                parseFieldInitializerOpt(foo7, foo7, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo7, foo7, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -379,7 +378,7 @@
                               listener: handleLiteralSetOrMap(1, {, const, }, false)
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -387,8 +386,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo8, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo8, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -402,7 +401,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo8, fieldDeclaration)
-                parseFieldInitializerOpt(foo8, foo8, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo8, foo8, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -442,7 +441,7 @@
                                 listener: handleLiteralSetOrMap(1, {, const, }, false)
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -450,8 +449,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo9, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo9, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -465,7 +464,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo9, fieldDeclaration)
-                parseFieldInitializerOpt(foo9, foo9, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo9, foo9, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -493,7 +492,7 @@
                               listener: handleLiteralSetOrMap(1, {, const, }, false)
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251_list.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251_list.dart.expect
index 38fbcab8..d64ab7e 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251_list.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251_list.dart.expect
@@ -28,7 +28,7 @@
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -50,12 +50,12 @@
               endTypeArguments(1, <, >)
               handleLiteralList(0, [, null, ])
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -76,12 +76,12 @@
               endTypeArguments(1, <, >)
               handleLiteralList(0, [, null, ])
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -95,12 +95,12 @@
               handleNoTypeArguments([])
               handleLiteralList(0, [, null, ])
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -124,12 +124,12 @@
               endArguments(0, (, ))
               handleSend(List, ;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -145,12 +145,12 @@
               endArguments(0, (, ))
               handleSend(List, ;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -173,12 +173,12 @@
               handleLiteralNull(null)
               handleLiteralList(1, [, null, ])
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -195,12 +195,12 @@
               handleLiteralNull(null)
               handleIndexedExpression(null, [, ])
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -222,12 +222,12 @@
               handleLiteralNull(null)
               handleLiteralList(1, [, null, ])
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -241,7 +241,7 @@
               handleLiteralNull(null)
               handleLiteralList(1, [, null, ])
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251_list.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251_list.dart.intertwined.expect
index 88127ee..425d4e2 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251_list.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251_list.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,8 +31,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo1, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+              parseFields({, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo1, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -43,7 +42,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo1, fieldDeclaration)
-                parseFieldInitializerOpt(foo1, foo1, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo1, foo1, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -71,7 +70,7 @@
                                       rewriter()
                                     listener: handleLiteralList(0, [, null, ])
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -79,8 +78,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo2, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo2, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -90,7 +89,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo2, fieldDeclaration)
-                parseFieldInitializerOpt(foo2, foo2, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo2, foo2, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -112,7 +111,7 @@
                                 rewriter()
                               listener: handleLiteralList(0, [, null, ])
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -120,8 +119,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo3, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo3, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -131,7 +130,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo3, fieldDeclaration)
-                parseFieldInitializerOpt(foo3, foo3, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo3, foo3, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -150,7 +149,7 @@
                                     rewriter()
                                   listener: handleLiteralList(0, [, null, ])
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -158,8 +157,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo4, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo4, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -169,7 +168,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo4, fieldDeclaration)
-                parseFieldInitializerOpt(foo4, foo4, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo4, foo4, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -197,7 +196,7 @@
                                     listener: endArguments(0, (, ))
                               listener: handleSend(List, ;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -205,8 +204,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo5, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo5, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -216,7 +215,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo5, fieldDeclaration)
-                parseFieldInitializerOpt(foo5, foo5, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo5, foo5, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -236,7 +235,7 @@
                                     listener: endArguments(0, (, ))
                               listener: handleSend(List, ;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -244,8 +243,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo6, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo6, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -255,7 +254,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo6, fieldDeclaration)
-                parseFieldInitializerOpt(foo6, foo6, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo6, foo6, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -286,7 +285,7 @@
                                               listener: handleLiteralNull(null)
                                     listener: handleLiteralList(1, [, null, ])
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -294,8 +293,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo7, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo7, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -305,7 +304,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo7, fieldDeclaration)
-                parseFieldInitializerOpt(foo7, foo7, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo7, foo7, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -329,7 +328,7 @@
                                   listener: handleLiteralNull(null)
                         listener: handleIndexedExpression(null, [, ])
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -337,8 +336,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo8, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo8, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -348,7 +347,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo8, fieldDeclaration)
-                parseFieldInitializerOpt(foo8, foo8, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo8, foo8, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -373,7 +372,7 @@
                                         listener: handleLiteralNull(null)
                               listener: handleLiteralList(1, [, null, ])
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -381,8 +380,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo9, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo9, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -392,7 +391,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo9, fieldDeclaration)
-                parseFieldInitializerOpt(foo9, foo9, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo9, foo9, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -408,7 +407,7 @@
                                       listener: handleLiteralNull(null)
                             listener: handleLiteralList(1, [, null, ])
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251_list_const.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251_list_const.dart.expect
index d005a9d..269871a 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251_list_const.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251_list_const.dart.expect
@@ -32,7 +32,7 @@
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -56,12 +56,12 @@
                 handleLiteralList(0, [, const, ])
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -84,12 +84,12 @@
                 handleLiteralList(0, [, const, ])
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -105,12 +105,12 @@
                 handleLiteralList(0, [, const, ])
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -138,12 +138,12 @@
                 endArguments(0, (, ))
               endConstExpression(const)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -163,12 +163,12 @@
                 endArguments(0, (, ))
               endConstExpression(const)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -193,12 +193,12 @@
                 handleLiteralList(1, [, const, ])
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -215,12 +215,12 @@
                 handleLiteralList(1, [, const, ])
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -244,12 +244,12 @@
                 handleLiteralList(1, [, const, ])
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -265,7 +265,7 @@
                 handleLiteralList(1, [, const, ])
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251_list_const.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251_list_const.dart.intertwined.expect
index c912bcf..0e6be26 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251_list_const.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251_list_const.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,8 +31,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo1, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+              parseFields({, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo1, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -43,7 +42,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo1, fieldDeclaration)
-                parseFieldInitializerOpt(foo1, foo1, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo1, foo1, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -70,7 +69,7 @@
                                 listener: handleLiteralList(0, [, const, ])
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -78,8 +77,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo2, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo2, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -89,7 +88,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo2, fieldDeclaration)
-                parseFieldInitializerOpt(foo2, foo2, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo2, foo2, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -114,7 +113,7 @@
                                 listener: handleLiteralList(0, [, const, ])
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -122,8 +121,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo3, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo3, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -133,7 +132,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo3, fieldDeclaration)
-                parseFieldInitializerOpt(foo3, foo3, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo3, foo3, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -151,7 +150,7 @@
                               listener: handleLiteralList(0, [, const, ])
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -159,8 +158,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo4, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo4, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -170,7 +169,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo4, fieldDeclaration)
-                parseFieldInitializerOpt(foo4, foo4, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo4, foo4, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -200,7 +199,7 @@
                                 listener: endArguments(0, (, ))
                             listener: endConstExpression(const)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -208,8 +207,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo5, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo5, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -219,7 +218,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo5, fieldDeclaration)
-                parseFieldInitializerOpt(foo5, foo5, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo5, foo5, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -241,7 +240,7 @@
                                 listener: endArguments(0, (, ))
                             listener: endConstExpression(const)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -249,8 +248,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo6, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo6, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -260,7 +259,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo6, fieldDeclaration)
-                parseFieldInitializerOpt(foo6, foo6, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo6, foo6, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -290,7 +289,7 @@
                                 listener: handleLiteralList(1, [, const, ])
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -298,8 +297,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo7, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo7, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -309,7 +308,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo7, fieldDeclaration)
-                parseFieldInitializerOpt(foo7, foo7, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo7, foo7, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -330,7 +329,7 @@
                               listener: handleLiteralList(1, [, const, ])
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -338,8 +337,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo8, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo8, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -349,7 +348,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo8, fieldDeclaration)
-                parseFieldInitializerOpt(foo8, foo8, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo8, foo8, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -377,7 +376,7 @@
                                 listener: handleLiteralList(1, [, const, ])
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -385,8 +384,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo9, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo9, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -396,7 +395,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo9, fieldDeclaration)
-                parseFieldInitializerOpt(foo9, foo9, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo9, foo9, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -415,7 +414,7 @@
                               listener: handleLiteralList(1, [, const, ])
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251_list_new.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251_list_new.dart.expect
index 13ae759..4214f48 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251_list_new.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251_list_new.dart.expect
@@ -44,7 +44,7 @@
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -66,12 +66,12 @@
               endTypeArguments(1, <, >)
               handleLiteralList(0, [, null, ])
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -93,12 +93,12 @@
               endTypeArguments(1, <, >)
               handleLiteralList(0, [, null, ])
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -112,12 +112,12 @@
               handleNoTypeArguments([])
               handleLiteralList(0, [, null, ])
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -145,12 +145,12 @@
                 endArguments(0, (, ))
               endNewExpression(new)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -170,12 +170,12 @@
                 endArguments(0, (, ))
               endNewExpression(new)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -198,12 +198,12 @@
               handleLiteralNull(null)
               handleLiteralList(1, [, null, ])
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -218,12 +218,12 @@
               handleLiteralNull(null)
               handleLiteralList(1, [, null, ])
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -246,12 +246,12 @@
               handleLiteralNull(null)
               handleLiteralList(1, [, null, ])
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -266,7 +266,7 @@
               handleLiteralNull(null)
               handleLiteralList(1, [, null, ])
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251_list_new.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251_list_new.dart.intertwined.expect
index c504081..888082a 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251_list_new.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251_list_new.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,8 +31,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo1, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+              parseFields({, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo1, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -43,7 +42,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo1, fieldDeclaration)
-                parseFieldInitializerOpt(foo1, foo1, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo1, foo1, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -70,7 +69,7 @@
                                     rewriter()
                                   listener: handleLiteralList(0, [, null, ])
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -78,8 +77,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo2, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo2, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -89,7 +88,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo2, fieldDeclaration)
-                parseFieldInitializerOpt(foo2, foo2, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo2, foo2, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -116,7 +115,7 @@
                                     rewriter()
                                   listener: handleLiteralList(0, [, null, ])
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -124,8 +123,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo3, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo3, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -135,7 +134,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo3, fieldDeclaration)
-                parseFieldInitializerOpt(foo3, foo3, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo3, foo3, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -153,7 +152,7 @@
                                   rewriter()
                                 listener: handleLiteralList(0, [, null, ])
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -161,8 +160,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo4, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo4, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -172,7 +171,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo4, fieldDeclaration)
-                parseFieldInitializerOpt(foo4, foo4, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo4, foo4, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -203,7 +202,7 @@
                                 listener: endArguments(0, (, ))
                             listener: endNewExpression(new)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -211,8 +210,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo5, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo5, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -222,7 +221,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo5, fieldDeclaration)
-                parseFieldInitializerOpt(foo5, foo5, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo5, foo5, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -245,7 +244,7 @@
                                 listener: endArguments(0, (, ))
                             listener: endNewExpression(new)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -253,8 +252,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo6, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo6, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -264,7 +263,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo6, fieldDeclaration)
-                parseFieldInitializerOpt(foo6, foo6, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo6, foo6, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -294,7 +293,7 @@
                                             listener: handleLiteralNull(null)
                                   listener: handleLiteralList(1, [, null, ])
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -302,8 +301,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo7, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo7, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -313,7 +312,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo7, fieldDeclaration)
-                parseFieldInitializerOpt(foo7, foo7, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo7, foo7, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -334,7 +333,7 @@
                                           listener: handleLiteralNull(null)
                                 listener: handleLiteralList(1, [, null, ])
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -342,8 +341,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo8, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo8, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -353,7 +352,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo8, fieldDeclaration)
-                parseFieldInitializerOpt(foo8, foo8, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo8, foo8, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -383,7 +382,7 @@
                                             listener: handleLiteralNull(null)
                                   listener: handleLiteralList(1, [, null, ])
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -391,8 +390,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo9, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo9, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -402,7 +401,7 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo9, fieldDeclaration)
-                parseFieldInitializerOpt(foo9, foo9, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo9, foo9, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -423,7 +422,7 @@
                                           listener: handleLiteralNull(null)
                                 listener: handleLiteralList(1, [, null, ])
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251_new.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251_new.dart.expect
index f3d58ae..631092e 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251_new.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251_new.dart.expect
@@ -44,7 +44,7 @@
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -72,12 +72,12 @@
               endTypeArguments(2, <, >)
               handleLiteralSetOrMap(0, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -105,12 +105,12 @@
               endTypeArguments(2, <, >)
               handleLiteralSetOrMap(0, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -127,12 +127,12 @@
               handleNoTypeArguments({)
               handleLiteralSetOrMap(0, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -166,12 +166,12 @@
                 endArguments(0, (, ))
               endNewExpression(new)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -194,12 +194,12 @@
                 endArguments(0, (, ))
               endNewExpression(new)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -231,12 +231,12 @@
               handleLiteralMapEntry(:, })
               handleLiteralSetOrMap(1, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -257,12 +257,12 @@
               handleLiteralMapEntry(:, })
               handleLiteralSetOrMap(1, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -294,12 +294,12 @@
               handleLiteralMapEntry(:, })
               handleLiteralSetOrMap(1, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Map, typeReference)
             beginTypeArguments(<)
               handleIdentifier(String, typeReference)
@@ -320,7 +320,7 @@
               handleLiteralMapEntry(:, })
               handleLiteralSetOrMap(1, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251_new.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251_new.dart.intertwined.expect
index 7c8208e..6d378b0 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251_new.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251_new.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,8 +31,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo1, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+              parseFields({, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo1, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -47,7 +46,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo1, fieldDeclaration)
-                parseFieldInitializerOpt(foo1, foo1, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo1, foo1, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -74,7 +73,7 @@
                                 parseLiteralSetOrMapSuffix(>, null)
                                   listener: handleLiteralSetOrMap(0, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -82,8 +81,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo2, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo2, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -97,7 +96,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo2, fieldDeclaration)
-                parseFieldInitializerOpt(foo2, foo2, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo2, foo2, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -124,7 +123,7 @@
                                 parseLiteralSetOrMapSuffix(>, null)
                                   listener: handleLiteralSetOrMap(0, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -132,8 +131,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo3, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo3, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -147,7 +146,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo3, fieldDeclaration)
-                parseFieldInitializerOpt(foo3, foo3, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo3, foo3, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -162,7 +161,7 @@
                               parseLiteralSetOrMapSuffix(Map, null)
                                 listener: handleLiteralSetOrMap(0, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -170,8 +169,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo4, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo4, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -185,7 +184,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo4, fieldDeclaration)
-                parseFieldInitializerOpt(foo4, foo4, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo4, foo4, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -219,7 +218,7 @@
                                 listener: endArguments(0, (, ))
                             listener: endNewExpression(new)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -227,8 +226,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo5, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo5, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -242,7 +241,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo5, fieldDeclaration)
-                parseFieldInitializerOpt(foo5, foo5, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo5, foo5, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -265,7 +264,7 @@
                                 listener: endArguments(0, (, ))
                             listener: endNewExpression(new)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -273,8 +272,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo6, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo6, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -288,7 +287,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo6, fieldDeclaration)
-                parseFieldInitializerOpt(foo6, foo6, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo6, foo6, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -330,7 +329,7 @@
                                   listener: handleLiteralMapEntry(:, })
                                   listener: handleLiteralSetOrMap(1, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -338,8 +337,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo7, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo7, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -353,7 +352,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo7, fieldDeclaration)
-                parseFieldInitializerOpt(foo7, foo7, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo7, foo7, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -383,7 +382,7 @@
                                 listener: handleLiteralMapEntry(:, })
                                 listener: handleLiteralSetOrMap(1, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -391,8 +390,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo8, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo8, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -406,7 +405,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo8, fieldDeclaration)
-                parseFieldInitializerOpt(foo8, foo8, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo8, foo8, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -448,7 +447,7 @@
                                   listener: handleLiteralMapEntry(:, })
                                   listener: handleLiteralSetOrMap(1, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -456,8 +455,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo9, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'ComplexTypeInfo', foo9, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 ensureIdentifier(final, typeReference)
                   listener: handleIdentifier(Map, typeReference)
                 listener: beginTypeArguments(<)
@@ -471,7 +470,7 @@
                 listener: handleType(Map, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo9, fieldDeclaration)
-                parseFieldInitializerOpt(foo9, foo9, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo9, foo9, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -501,7 +500,7 @@
                                 listener: handleLiteralMapEntry(:, })
                                 listener: handleLiteralSetOrMap(1, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251_set.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251_set.dart.expect
index f8d5f4f..32e2980 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251_set.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251_set.dart.expect
@@ -32,7 +32,7 @@
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -54,12 +54,12 @@
               endTypeArguments(1, <, >)
               handleLiteralSetOrMap(0, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -80,12 +80,12 @@
               endTypeArguments(1, <, >)
               handleLiteralSetOrMap(0, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -99,12 +99,12 @@
               handleNoTypeArguments({)
               handleLiteralSetOrMap(0, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -128,12 +128,12 @@
               endArguments(0, (, ))
               handleSend(Set, ;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -149,12 +149,12 @@
               endArguments(0, (, ))
               handleSend(Set, ;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -177,12 +177,12 @@
               handleLiteralNull(null)
               handleLiteralSetOrMap(1, {, null, }, true)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -197,12 +197,12 @@
               handleLiteralNull(null)
               handleLiteralSetOrMap(1, {, null, }, true)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -224,12 +224,12 @@
               handleLiteralNull(null)
               handleLiteralSetOrMap(1, {, null, }, true)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -243,7 +243,7 @@
               handleLiteralNull(null)
               handleLiteralSetOrMap(1, {, null, }, true)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251_set.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251_set.dart.intertwined.expect
index e13a694..809eb3c 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251_set.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251_set.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,8 +31,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo1, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+              parseFields({, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo1, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -43,7 +42,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo1, fieldDeclaration)
-                parseFieldInitializerOpt(foo1, foo1, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo1, foo1, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -68,7 +67,7 @@
                                   parseLiteralSetOrMapSuffix(>, null)
                                     listener: handleLiteralSetOrMap(0, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -76,8 +75,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo2, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo2, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -87,7 +86,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo2, fieldDeclaration)
-                parseFieldInitializerOpt(foo2, foo2, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo2, foo2, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -106,7 +105,7 @@
                             parseLiteralSetOrMapSuffix(>, null)
                               listener: handleLiteralSetOrMap(0, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -114,8 +113,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo3, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo3, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -125,7 +124,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo3, fieldDeclaration)
-                parseFieldInitializerOpt(foo3, foo3, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo3, foo3, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -141,7 +140,7 @@
                                 parseLiteralSetOrMapSuffix(Set, null)
                                   listener: handleLiteralSetOrMap(0, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -149,8 +148,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo4, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo4, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -160,7 +159,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo4, fieldDeclaration)
-                parseFieldInitializerOpt(foo4, foo4, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo4, foo4, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -188,7 +187,7 @@
                                     listener: endArguments(0, (, ))
                               listener: handleSend(Set, ;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -196,8 +195,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo5, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo5, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -207,7 +206,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo5, fieldDeclaration)
-                parseFieldInitializerOpt(foo5, foo5, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo5, foo5, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -227,7 +226,7 @@
                                     listener: endArguments(0, (, ))
                               listener: handleSend(Set, ;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -235,8 +234,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo6, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo6, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -246,7 +245,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo6, fieldDeclaration)
-                parseFieldInitializerOpt(foo6, foo6, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo6, foo6, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -277,7 +276,7 @@
                                               listener: handleLiteralNull(null)
                                     listener: handleLiteralSetOrMap(1, {, null, }, true)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -285,8 +284,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo7, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo7, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -296,7 +295,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo7, fieldDeclaration)
-                parseFieldInitializerOpt(foo7, foo7, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo7, foo7, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -318,7 +317,7 @@
                                             listener: handleLiteralNull(null)
                                   listener: handleLiteralSetOrMap(1, {, null, }, true)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -326,8 +325,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo8, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo8, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -337,7 +336,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo8, fieldDeclaration)
-                parseFieldInitializerOpt(foo8, foo8, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo8, foo8, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -362,7 +361,7 @@
                                         listener: handleLiteralNull(null)
                               listener: handleLiteralSetOrMap(1, {, null, }, true)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -370,8 +369,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo9, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo9, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -381,7 +380,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo9, fieldDeclaration)
-                parseFieldInitializerOpt(foo9, foo9, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo9, foo9, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -397,7 +396,7 @@
                                       listener: handleLiteralNull(null)
                             listener: handleLiteralSetOrMap(1, {, null, }, true)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251_set_const.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251_set_const.dart.expect
index c664b70..9c37cea 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251_set_const.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251_set_const.dart.expect
@@ -32,7 +32,7 @@
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -56,12 +56,12 @@
                 handleLiteralSetOrMap(0, {, const, }, false)
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -84,12 +84,12 @@
                 handleLiteralSetOrMap(0, {, const, }, false)
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -105,12 +105,12 @@
                 handleLiteralSetOrMap(0, {, const, }, false)
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -138,12 +138,12 @@
                 endArguments(0, (, ))
               endConstExpression(const)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -163,12 +163,12 @@
                 endArguments(0, (, ))
               endConstExpression(const)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -193,12 +193,12 @@
                 handleLiteralSetOrMap(1, {, const, }, true)
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -215,12 +215,12 @@
                 handleLiteralSetOrMap(1, {, const, }, true)
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -244,12 +244,12 @@
                 handleLiteralSetOrMap(1, {, const, }, true)
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -265,7 +265,7 @@
                 handleLiteralSetOrMap(1, {, const, }, true)
               endConstLiteral(;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251_set_const.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251_set_const.dart.intertwined.expect
index 6d7d079..8285289 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251_set_const.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251_set_const.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,8 +31,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo1, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+              parseFields({, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo1, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -43,7 +42,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo1, fieldDeclaration)
-                parseFieldInitializerOpt(foo1, foo1, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo1, foo1, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -67,7 +66,7 @@
                                 listener: handleLiteralSetOrMap(0, {, const, }, false)
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -75,8 +74,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo2, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo2, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -86,7 +85,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo2, fieldDeclaration)
-                parseFieldInitializerOpt(foo2, foo2, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo2, foo2, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -108,7 +107,7 @@
                                 listener: handleLiteralSetOrMap(0, {, const, }, false)
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -116,8 +115,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo3, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo3, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -127,7 +126,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo3, fieldDeclaration)
-                parseFieldInitializerOpt(foo3, foo3, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo3, foo3, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -142,7 +141,7 @@
                               listener: handleLiteralSetOrMap(0, {, const, }, false)
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -150,8 +149,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo4, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo4, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -161,7 +160,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo4, fieldDeclaration)
-                parseFieldInitializerOpt(foo4, foo4, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo4, foo4, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -191,7 +190,7 @@
                                 listener: endArguments(0, (, ))
                             listener: endConstExpression(const)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -199,8 +198,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo5, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo5, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -210,7 +209,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo5, fieldDeclaration)
-                parseFieldInitializerOpt(foo5, foo5, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo5, foo5, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -232,7 +231,7 @@
                                 listener: endArguments(0, (, ))
                             listener: endConstExpression(const)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -240,8 +239,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo6, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo6, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -251,7 +250,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo6, fieldDeclaration)
-                parseFieldInitializerOpt(foo6, foo6, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo6, foo6, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -281,7 +280,7 @@
                                 listener: handleLiteralSetOrMap(1, {, const, }, true)
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -289,8 +288,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo7, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo7, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -300,7 +299,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo7, fieldDeclaration)
-                parseFieldInitializerOpt(foo7, foo7, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo7, foo7, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -321,7 +320,7 @@
                               listener: handleLiteralSetOrMap(1, {, const, }, true)
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -329,8 +328,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo8, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo8, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -340,7 +339,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo8, fieldDeclaration)
-                parseFieldInitializerOpt(foo8, foo8, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo8, foo8, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -368,7 +367,7 @@
                                 listener: handleLiteralSetOrMap(1, {, const, }, true)
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -376,8 +375,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo9, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo9, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -387,7 +386,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo9, fieldDeclaration)
-                parseFieldInitializerOpt(foo9, foo9, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo9, foo9, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -406,7 +405,7 @@
                               listener: handleLiteralSetOrMap(1, {, const, }, true)
                             listener: endConstLiteral(;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251_set_new.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251_set_new.dart.expect
index f534b0d..eb58d21 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251_set_new.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251_set_new.dart.expect
@@ -44,7 +44,7 @@
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -66,12 +66,12 @@
               endTypeArguments(1, <, >)
               handleLiteralSetOrMap(0, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -93,12 +93,12 @@
               endTypeArguments(1, <, >)
               handleLiteralSetOrMap(0, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -112,12 +112,12 @@
               handleNoTypeArguments({)
               handleLiteralSetOrMap(0, {, null, }, false)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -145,12 +145,12 @@
                 endArguments(0, (, ))
               endNewExpression(new)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -170,12 +170,12 @@
                 endArguments(0, (, ))
               endNewExpression(new)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -198,12 +198,12 @@
               handleLiteralNull(null)
               handleLiteralSetOrMap(1, {, null, }, true)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -218,12 +218,12 @@
               handleLiteralNull(null)
               handleLiteralSetOrMap(1, {, null, }, true)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -246,12 +246,12 @@
               handleLiteralNull(null)
               handleLiteralSetOrMap(1, {, null, }, true)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
             handleIdentifier(Set, typeReference)
             beginTypeArguments(<)
               handleIdentifier(Undefined, typeReference)
@@ -266,7 +266,7 @@
               handleLiteralNull(null)
               handleLiteralSetOrMap(1, {, null, }, true)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, final, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45251_set_new.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45251_set_new.dart.intertwined.expect
index bd41963..77797c9 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45251_set_new.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45251_set_new.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,8 +31,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo1, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+              parseFields({, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo1, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -43,7 +42,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo1, fieldDeclaration)
-                parseFieldInitializerOpt(foo1, foo1, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo1, foo1, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -67,7 +66,7 @@
                                 parseLiteralSetOrMapSuffix(>, null)
                                   listener: handleLiteralSetOrMap(0, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -75,8 +74,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo2, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo2, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -86,7 +85,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo2, fieldDeclaration)
-                parseFieldInitializerOpt(foo2, foo2, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo2, foo2, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -110,7 +109,7 @@
                                 parseLiteralSetOrMapSuffix(>, null)
                                   listener: handleLiteralSetOrMap(0, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -118,8 +117,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo3, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo3, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -129,7 +128,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo3, fieldDeclaration)
-                parseFieldInitializerOpt(foo3, foo3, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo3, foo3, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -144,7 +143,7 @@
                               parseLiteralSetOrMapSuffix(Set, null)
                                 listener: handleLiteralSetOrMap(0, {, null, }, false)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -152,8 +151,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo4, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo4, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -163,7 +162,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo4, fieldDeclaration)
-                parseFieldInitializerOpt(foo4, foo4, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo4, foo4, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -194,7 +193,7 @@
                                 listener: endArguments(0, (, ))
                             listener: endNewExpression(new)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -202,8 +201,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo5, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo5, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -213,7 +212,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo5, fieldDeclaration)
-                parseFieldInitializerOpt(foo5, foo5, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo5, foo5, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -236,7 +235,7 @@
                                 listener: endArguments(0, (, ))
                             listener: endNewExpression(new)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -244,8 +243,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo6, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo6, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -255,7 +254,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo6, fieldDeclaration)
-                parseFieldInitializerOpt(foo6, foo6, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo6, foo6, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -285,7 +284,7 @@
                                             listener: handleLiteralNull(null)
                                   listener: handleLiteralSetOrMap(1, {, null, }, true)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -293,8 +292,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo7, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo7, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -304,7 +303,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo7, fieldDeclaration)
-                parseFieldInitializerOpt(foo7, foo7, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo7, foo7, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -325,7 +324,7 @@
                                           listener: handleLiteralNull(null)
                                 listener: handleLiteralSetOrMap(1, {, null, }, true)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -333,8 +332,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo8, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo8, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -344,7 +343,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo8, fieldDeclaration)
-                parseFieldInitializerOpt(foo8, foo8, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo8, foo8, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -374,7 +373,7 @@
                                             listener: handleLiteralNull(null)
                                   listener: handleLiteralSetOrMap(1, {, null, }, true)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, F)
@@ -382,8 +381,8 @@
                 listener: beginMetadataStar(final)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo9, DeclarationKind.Class, F, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, ;)
+              parseFields(;, null, null, null, null, null, null, final, final, Instance of 'SimpleTypeWith1Argument', foo9, DeclarationKind.Class, F, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, ;)
                 listener: handleIdentifier(Set, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(Undefined, typeReference)
@@ -393,7 +392,7 @@
                 listener: handleType(Set, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo9, fieldDeclaration)
-                parseFieldInitializerOpt(foo9, foo9, null, null, null, final, DeclarationKind.Class, F)
+                parseFieldInitializerOpt(foo9, foo9, null, null, null, null, final, DeclarationKind.Class, F)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -414,7 +413,7 @@
                                           listener: handleLiteralNull(null)
                                 listener: handleLiteralSetOrMap(1, {, null, }, true)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 9, {, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45327.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45327.crash_dart.expect
index 6c4db58..2b53b35 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45327.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45327.crash_dart.expect
@@ -12,7 +12,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(UnmatchedToken((), null)
+    beginTopLevelMethod(UnmatchedToken((), null, null)
       handleNoType(UnmatchedToken(())
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45327.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45327.crash_dart.intertwined.expect
index 1dee993..d1c53b4 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45327.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45327.crash_dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl(UnmatchedToken(())
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(UnmatchedToken((), null, UnmatchedToken((), Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(UnmatchedToken((), null)
+      parseTopLevelMethod(UnmatchedToken((), null, null, UnmatchedToken((), Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(UnmatchedToken((), null, null)
         listener: handleNoType(UnmatchedToken(())
         ensureIdentifierPotentiallyRecovered(UnmatchedToken((), topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_45327_prime_1.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_45327_prime_1.crash_dart.intertwined.expect
index c2de767..ef5574f 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_45327_prime_1.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_45327_prime_1.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar(UnmatchedToken(())
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(UnmatchedToken((), class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(UnmatchedToken((), class)
+    parseTopLevelKeywordDeclaration(UnmatchedToken((), class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46346.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46346.dart.intertwined.expect
index d873666..dc599b5 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46346.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46346.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -36,8 +35,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -66,8 +64,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -96,8 +93,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -124,8 +120,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -152,8 +147,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -182,8 +176,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -212,8 +205,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -242,8 +234,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -272,8 +263,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -302,8 +292,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -332,8 +321,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -362,8 +350,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -392,8 +379,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -422,8 +408,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -452,8 +437,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -482,8 +466,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -512,8 +495,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -542,8 +524,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -572,8 +553,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -602,8 +582,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -632,8 +611,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -662,8 +640,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -692,8 +669,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -722,8 +698,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -752,8 +727,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -782,8 +756,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -812,8 +785,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -840,8 +812,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -870,8 +841,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -898,8 +868,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -928,8 +897,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -958,8 +926,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -988,8 +955,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1018,8 +984,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1046,8 +1011,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1076,8 +1040,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1106,8 +1069,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1136,8 +1098,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1166,8 +1127,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1196,8 +1156,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1224,8 +1183,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1254,8 +1212,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1284,8 +1241,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1312,8 +1268,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1340,8 +1295,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1370,8 +1324,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1398,8 +1351,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1428,8 +1380,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1456,8 +1407,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1486,8 +1436,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1516,8 +1465,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1546,8 +1494,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1576,8 +1523,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1604,8 +1550,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1632,8 +1577,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1662,8 +1606,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1692,8 +1635,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1722,8 +1664,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1750,8 +1691,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1780,8 +1720,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1810,8 +1749,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1840,8 +1778,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1870,8 +1807,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1900,8 +1836,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1930,8 +1865,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1960,8 +1894,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1990,8 +1923,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -2020,8 +1952,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46346_prime_1.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46346_prime_1.dart.intertwined.expect
index 2ae1f5a..aa74be1 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46346_prime_1.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46346_prime_1.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -35,8 +34,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -64,8 +62,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -93,8 +90,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -120,8 +116,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -147,8 +142,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -176,8 +170,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -205,8 +198,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -234,8 +226,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -263,8 +254,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -292,8 +282,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -321,8 +310,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -350,8 +338,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -379,8 +366,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -408,8 +394,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -437,8 +422,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -466,8 +450,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -495,8 +478,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -524,8 +506,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -553,8 +534,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -582,8 +562,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -611,8 +590,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -640,8 +618,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -669,8 +646,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -698,8 +674,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -727,8 +702,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -756,8 +730,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -785,8 +758,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -812,8 +784,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -841,8 +812,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -868,8 +838,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -897,8 +866,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -926,8 +894,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -955,8 +922,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -984,8 +950,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1011,8 +976,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1040,8 +1004,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1069,8 +1032,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1098,8 +1060,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1127,8 +1088,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1156,8 +1116,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1183,8 +1142,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1212,8 +1170,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1241,8 +1198,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1268,8 +1224,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1295,8 +1250,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1324,8 +1278,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1351,8 +1304,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1380,8 +1332,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1407,8 +1358,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1436,8 +1386,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1465,8 +1414,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1494,8 +1442,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1523,8 +1470,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1550,8 +1496,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1577,8 +1522,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1606,8 +1550,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1635,8 +1578,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1664,8 +1606,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1691,8 +1632,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1720,8 +1660,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1749,8 +1688,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1778,8 +1716,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1807,8 +1744,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1836,8 +1772,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1865,8 +1800,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1894,8 +1828,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1923,8 +1856,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -1952,8 +1884,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46346_prime_2.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46346_prime_2.dart.intertwined.expect
index d6e9761..f94368d 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46346_prime_2.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46346_prime_2.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46505.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46505.crash_dart.expect
index b3a0c42..1767224 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46505.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46505.crash_dart.expect
@@ -40,7 +40,7 @@
         beginMetadataStar(Stream)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(Stream, typeReference)
             beginTypeArguments(<)
               handleIdentifier(List, typeReference)
@@ -57,7 +57,7 @@
             handleIdentifier(, fieldDeclaration)
             handleNoFieldInitializer(})
             handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], >, >)
-          endClassFields(null, null, null, null, null, null, 1, Stream, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, Stream, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
     endClassDeclaration(class, })
@@ -77,7 +77,7 @@
         beginMetadataStar(List)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleRecoverableError(Message[ExpectedType, Expected a type, but got '>'., null, {lexeme: >}], >, >)
@@ -90,7 +90,7 @@
             handleIdentifier(, fieldDeclaration)
             handleNoFieldInitializer(})
             handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], >, >)
-          endClassFields(null, null, null, null, null, null, 1, List, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, List, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46505.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46505.crash_dart.intertwined.expect
index de02c36..4a8bcb9 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46505.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46505.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,9 +31,9 @@
                 listener: beginMetadataStar(Stream)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(>, {, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', null, DeclarationKind.Class, A)
-                parseFields({, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', }, DeclarationKind.Class, A, false)
-                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              recoverFromInvalidMember(>, {, null, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', null, DeclarationKind.Class, A)
+                parseFields({, null, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', }, DeclarationKind.Class, A, false)
+                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                   ensureIdentifier({, typeReference)
                     listener: handleIdentifier(Stream, typeReference)
                   listener: beginTypeArguments(<)
@@ -57,13 +56,13 @@
                         listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {lexeme: }}], }, })
                       rewriter()
                     listener: handleIdentifier(, fieldDeclaration)
-                  parseFieldInitializerOpt(, , null, null, null, null, DeclarationKind.Class, A)
+                  parseFieldInitializerOpt(, , null, null, null, null, null, DeclarationKind.Class, A)
                     listener: handleNoFieldInitializer(})
                   ensureSemicolon()
                     reportRecoverableError(>, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
                       listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], >, >)
                     rewriter()
-                  listener: endClassFields(null, null, null, null, null, null, 1, Stream, ;)
+                  listener: endClassFields(null, null, null, null, null, null, null, 1, Stream, ;)
                 listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
@@ -73,8 +72,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -99,9 +97,9 @@
                 listener: beginMetadataStar(List)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(>, {, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', null, DeclarationKind.Class, B)
-                parseFields({, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', }, DeclarationKind.Class, B, false)
-                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              recoverFromInvalidMember(>, {, null, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', null, DeclarationKind.Class, B)
+                parseFields({, null, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', }, DeclarationKind.Class, B, false)
+                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                   ensureIdentifier({, typeReference)
                     listener: handleIdentifier(List, typeReference)
                   listener: beginTypeArguments(<)
@@ -119,13 +117,13 @@
                         listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {lexeme: }}], }, })
                       rewriter()
                     listener: handleIdentifier(, fieldDeclaration)
-                  parseFieldInitializerOpt(, , null, null, null, null, DeclarationKind.Class, B)
+                  parseFieldInitializerOpt(, , null, null, null, null, null, DeclarationKind.Class, B)
                     listener: handleNoFieldInitializer(})
                   ensureSemicolon()
                     reportRecoverableError(>, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
                       listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], >, >)
                     rewriter()
-                  listener: endClassFields(null, null, null, null, null, null, 1, List, ;)
+                  listener: endClassFields(null, null, null, null, null, null, null, 1, List, ;)
                 listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_1.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_1.crash_dart.intertwined.expect
index d014071..c4394b2 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_1.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_1.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_2.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_2.crash_dart.intertwined.expect
index 7c4babb..6568041 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_2.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_2.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_3.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_3.crash_dart.expect
index 9bd5718..7798fab 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_3.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_3.crash_dart.expect
@@ -28,7 +28,7 @@
         beginMetadataStar(Stream)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(Stream, typeReference)
             beginTypeArguments(<)
               handleIdentifier(List, typeReference)
@@ -49,7 +49,7 @@
             handleIdentifier(, fieldDeclaration)
             handleNoFieldInitializer(})
             handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], >, >)
-          endClassFields(null, null, null, null, null, null, 1, Stream, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, Stream, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_3.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_3.crash_dart.intertwined.expect
index 7feff58..a6d366c 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_3.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_3.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,9 +31,9 @@
                 listener: beginMetadataStar(Stream)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(>, {, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', null, DeclarationKind.Class, A)
-                parseFields({, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', }, DeclarationKind.Class, A, false)
-                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              recoverFromInvalidMember(>, {, null, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', null, DeclarationKind.Class, A)
+                parseFields({, null, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', }, DeclarationKind.Class, A, false)
+                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                   ensureIdentifier({, typeReference)
                     listener: handleIdentifier(Stream, typeReference)
                   listener: beginTypeArguments(<)
@@ -62,13 +61,13 @@
                         listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {lexeme: }}], }, })
                       rewriter()
                     listener: handleIdentifier(, fieldDeclaration)
-                  parseFieldInitializerOpt(, , null, null, null, null, DeclarationKind.Class, A)
+                  parseFieldInitializerOpt(, , null, null, null, null, null, DeclarationKind.Class, A)
                     listener: handleNoFieldInitializer(})
                   ensureSemicolon()
                     reportRecoverableError(>, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
                       listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], >, >)
                     rewriter()
-                  listener: endClassFields(null, null, null, null, null, null, 1, Stream, ;)
+                  listener: endClassFields(null, null, null, null, null, null, null, 1, Stream, ;)
                 listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_4.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_4.crash_dart.expect
index 16793c9..ecbf0e4 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_4.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_4.crash_dart.expect
@@ -28,7 +28,7 @@
         beginMetadataStar(Stream)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(Stream, typeReference)
             beginTypeArguments(<)
               handleIdentifier(List, typeReference)
@@ -53,7 +53,7 @@
             handleIdentifier(, fieldDeclaration)
             handleNoFieldInitializer(})
             handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], >, >)
-          endClassFields(null, null, null, null, null, null, 1, Stream, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, Stream, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_4.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_4.crash_dart.intertwined.expect
index 8caa8f6..c2c8110 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_4.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_4.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,9 +31,9 @@
                 listener: beginMetadataStar(Stream)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(>, {, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', null, DeclarationKind.Class, A)
-                parseFields({, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', }, DeclarationKind.Class, A, false)
-                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              recoverFromInvalidMember(>, {, null, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', null, DeclarationKind.Class, A)
+                parseFields({, null, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', }, DeclarationKind.Class, A, false)
+                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                   ensureIdentifier({, typeReference)
                     listener: handleIdentifier(Stream, typeReference)
                   listener: beginTypeArguments(<)
@@ -67,13 +66,13 @@
                         listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {lexeme: }}], }, })
                       rewriter()
                     listener: handleIdentifier(, fieldDeclaration)
-                  parseFieldInitializerOpt(, , null, null, null, null, DeclarationKind.Class, A)
+                  parseFieldInitializerOpt(, , null, null, null, null, null, DeclarationKind.Class, A)
                     listener: handleNoFieldInitializer(})
                   ensureSemicolon()
                     reportRecoverableError(>, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
                       listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], >, >)
                     rewriter()
-                  listener: endClassFields(null, null, null, null, null, null, 1, Stream, ;)
+                  listener: endClassFields(null, null, null, null, null, null, null, 1, Stream, ;)
                 listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_5.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_5.crash_dart.expect
index 5dbe0ee..57bfedc 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_5.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_5.crash_dart.expect
@@ -92,7 +92,7 @@
         beginMetadataStar(Stream)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(Stream, typeReference)
             beginTypeArguments(<)
               handleIdentifier(List, typeReference)
@@ -117,7 +117,7 @@
             handleIdentifier(, fieldDeclaration)
             handleNoFieldInitializer(})
             handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], >, >)
-          endClassFields(null, null, null, null, null, null, 1, Stream, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, Stream, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
     endClassDeclaration(class, })
@@ -137,7 +137,7 @@
         beginMetadataStar(Stream)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(Stream, typeReference)
             beginTypeArguments(<)
               handleIdentifier(List, typeReference)
@@ -159,12 +159,12 @@
             handleType(Stream, null)
             handleIdentifier(foo, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 1, Stream, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, Stream, ;)
         endMember()
         beginMetadataStar(Stream)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(Stream, typeReference)
             beginTypeArguments(<)
               handleIdentifier(List, typeReference)
@@ -189,7 +189,7 @@
             handleIdentifier(, fieldDeclaration)
             handleNoFieldInitializer(})
             handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], >, >)
-          endClassFields(null, null, null, null, null, null, 1, Stream, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, Stream, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
     endClassDeclaration(class, })
@@ -209,7 +209,7 @@
         beginMetadataStar(Stream)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(Stream, typeReference)
             beginTypeArguments(<)
               handleIdentifier(List, typeReference)
@@ -231,7 +231,7 @@
             handleType(Stream, null)
             handleIdentifier(foo, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 1, Stream, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, Stream, ;)
         endMember()
         beginMetadataStar(Stream)
         endMetadataStar(0)
@@ -280,12 +280,12 @@
         beginMetadataStar(baz)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, })
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, })
             handleRecoverableError(MissingConstFinalVarOrType, baz, baz)
             handleNoType(})
             handleIdentifier(baz, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 1, baz, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, baz, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 3, {, })
     endClassDeclaration(class, })
@@ -293,7 +293,7 @@
   beginMetadataStar(Stream)
   endMetadataStar(0)
   beginTopLevelMember(Stream)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(Stream, typeReference)
       beginTypeArguments(<)
         handleIdentifier(List, typeReference)
@@ -336,7 +336,7 @@
   beginMetadataStar(baz)
   endMetadataStar(0)
   beginTopLevelMember(baz)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, })
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, })
       handleRecoverableError(MissingConstFinalVarOrType, baz, baz)
       handleNoType(})
       handleIdentifier(baz, topLevelVariableDeclaration)
@@ -348,7 +348,7 @@
   beginTopLevelMember(Stream)
     handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
     // WARNING: Reporting at eof for .
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(Stream, typeReference)
       beginTypeArguments(<)
         handleIdentifier(List, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_5.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_5.crash_dart.intertwined.expect
index 31dd50e..d173906 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_5.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_5.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,9 +31,9 @@
                 listener: beginMetadataStar(Stream)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(>, {, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', null, DeclarationKind.Class, A)
-                parseFields({, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', }, DeclarationKind.Class, A, false)
-                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              recoverFromInvalidMember(>, {, null, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', null, DeclarationKind.Class, A)
+                parseFields({, null, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', }, DeclarationKind.Class, A, false)
+                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                   ensureIdentifier({, typeReference)
                     listener: handleIdentifier(Stream, typeReference)
                   listener: beginTypeArguments(<)
@@ -67,13 +66,13 @@
                         listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {lexeme: }}], }, })
                       rewriter()
                     listener: handleIdentifier(, fieldDeclaration)
-                  parseFieldInitializerOpt(, , null, null, null, null, DeclarationKind.Class, A)
+                  parseFieldInitializerOpt(, , null, null, null, null, null, DeclarationKind.Class, A)
                     listener: handleNoFieldInitializer(})
                   ensureSemicolon()
                     reportRecoverableError(>, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
                       listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], >, >)
                     rewriter()
-                  listener: endClassFields(null, null, null, null, null, null, 1, Stream, ;)
+                  listener: endClassFields(null, null, null, null, null, null, null, 1, Stream, ;)
                 listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
@@ -83,8 +82,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -109,8 +107,8 @@
                 listener: beginMetadataStar(Stream)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', foo, DeclarationKind.Class, B, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              parseFields({, null, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', foo, DeclarationKind.Class, B, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                 ensureIdentifier({, typeReference)
                   listener: handleIdentifier(Stream, typeReference)
                 listener: beginTypeArguments(<)
@@ -136,9 +134,9 @@
                 listener: handleType(Stream, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo, fieldDeclaration)
-                parseFieldInitializerOpt(foo, foo, null, null, null, null, DeclarationKind.Class, B)
+                parseFieldInitializerOpt(foo, foo, null, null, null, null, null, DeclarationKind.Class, B)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 1, Stream, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, Stream, ;)
               listener: endMember()
             notEofOrValue(}, Stream)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, B)
@@ -146,9 +144,9 @@
                 listener: beginMetadataStar(Stream)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(>, ;, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', null, DeclarationKind.Class, B)
-                parseFields(;, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', }, DeclarationKind.Class, B, false)
-                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              recoverFromInvalidMember(>, ;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', null, DeclarationKind.Class, B)
+                parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', }, DeclarationKind.Class, B, false)
+                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                   ensureIdentifier(;, typeReference)
                     listener: handleIdentifier(Stream, typeReference)
                   listener: beginTypeArguments(<)
@@ -181,13 +179,13 @@
                         listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {lexeme: }}], }, })
                       rewriter()
                     listener: handleIdentifier(, fieldDeclaration)
-                  parseFieldInitializerOpt(, , null, null, null, null, DeclarationKind.Class, B)
+                  parseFieldInitializerOpt(, , null, null, null, null, null, DeclarationKind.Class, B)
                     listener: handleNoFieldInitializer(})
                   ensureSemicolon()
                     reportRecoverableError(>, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
                       listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], >, >)
                     rewriter()
-                  listener: endClassFields(null, null, null, null, null, null, 1, Stream, ;)
+                  listener: endClassFields(null, null, null, null, null, null, null, 1, Stream, ;)
                 listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
@@ -197,8 +195,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -223,8 +220,8 @@
                 listener: beginMetadataStar(Stream)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', foo, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              parseFields({, null, null, null, null, null, null, null, {, Instance of 'ComplexTypeInfo', foo, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                 ensureIdentifier({, typeReference)
                   listener: handleIdentifier(Stream, typeReference)
                 listener: beginTypeArguments(<)
@@ -250,9 +247,9 @@
                 listener: handleType(Stream, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(foo, fieldDeclaration)
-                parseFieldInitializerOpt(foo, foo, null, null, null, null, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(foo, foo, null, null, null, null, null, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 1, Stream, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, Stream, ;)
               listener: endMember()
             notEofOrValue(}, Stream)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -344,16 +341,16 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               isReservedKeyword(;)
-              parseFields(}, null, null, null, null, null, null, }, Instance of 'NoType', baz, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, })
+              parseFields(}, null, null, null, null, null, null, null, }, Instance of 'NoType', baz, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, })
                 reportRecoverableError(baz, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, baz, baz)
                 listener: handleNoType(})
                 ensureIdentifierPotentiallyRecovered(}, fieldDeclaration, false)
                   listener: handleIdentifier(baz, fieldDeclaration)
-                parseFieldInitializerOpt(baz, baz, null, null, null, null, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(baz, baz, null, null, null, null, null, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 1, baz, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, baz, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 3, {, })
@@ -365,8 +362,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(Stream)
-      parseTopLevelMethod(}, null, }, Instance of 'ComplexTypeInfo', null, Stream, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'ComplexTypeInfo', null, Stream, false)
+        listener: beginTopLevelMethod(}, null, null)
         ensureIdentifier(}, typeReference)
           listener: handleIdentifier(Stream, typeReference)
         listener: beginTypeArguments(<)
@@ -445,14 +442,14 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(baz)
       isReservedKeyword(;)
-      parseFields(}, null, null, null, null, null, null, }, Instance of 'NoType', baz, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, })
+      parseFields(}, null, null, null, null, null, null, null, }, Instance of 'NoType', baz, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, })
         reportRecoverableError(baz, MissingConstFinalVarOrType)
           listener: handleRecoverableError(MissingConstFinalVarOrType, baz, baz)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelVariableDeclaration, false)
           listener: handleIdentifier(baz, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(baz, baz, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(baz, baz, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, null, null, 1, baz, ;)
   listener: endTopLevelDeclaration(Stream)
@@ -467,8 +464,8 @@
           listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
           listener: // WARNING: Reporting at eof for .
         rewriter()
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', , DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', , DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         ensureIdentifier(;, typeReference)
           listener: handleIdentifier(Stream, typeReference)
         listener: beginTypeArguments(<)
@@ -497,7 +494,7 @@
         listener: handleType(Stream, null)
         ensureIdentifierPotentiallyRecovered(>, topLevelVariableDeclaration, false)
           listener: handleIdentifier(, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(, , null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(, , null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer()
         ensureSemicolon()
           reportRecoverableError(>, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_6.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_6.crash_dart.intertwined.expect
index abf0da2..0562a9c 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_6.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46505_prime_6.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.expect
index 7653208..1404e10 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.expect
@@ -8,7 +8,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.intertwined.expect
index 6c25f67..8b1d296 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46736.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.expect
index 6d47444..74df9c4 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.intertwined.expect
index 6ee505e..f165cd4 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_46736_prime.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart
new file mode 100644
index 0000000..fe9c022
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart
@@ -0,0 +1,31 @@
+class A {
+  A(int x);
+  A.y(int x);
+}
+
+class B extends A {
+  B(int x) : assert(x > 0) super(x);
+}
+
+class B2 extends A {
+  B2(int x) : assert(x > 0) super.y(x);
+}
+
+class B3 extends A {
+  B3(int x) : assert(x > 0) this.y(x);
+  B3.y(int x);
+}
+
+class C extends A {
+  int y;
+  C(int x) : assert(x > 0) y = 2*21;
+}
+
+class D extends A {
+  D(int x) : assert(x > 0) assert(x - 1 > 0);
+}
+
+class E extends A {
+  final int y;
+  E(int x) : assert(x > 0) this.y = x*2;
+}
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.expect
new file mode 100644
index 0000000..c4af2cb
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.expect
@@ -0,0 +1,534 @@
+Problems reported:
+
+parser/error_recovery/issue_48411:7:26: Expected ',' after this.
+  B(int x) : assert(x > 0) super(x);
+                         ^
+
+parser/error_recovery/issue_48411:11:27: Expected ',' after this.
+  B2(int x) : assert(x > 0) super.y(x);
+                          ^
+
+parser/error_recovery/issue_48411:15:27: Expected ',' after this.
+  B3(int x) : assert(x > 0) this.y(x);
+                          ^
+
+parser/error_recovery/issue_48411:21:26: Expected ',' after this.
+  C(int x) : assert(x > 0) y = 2*21;
+                         ^
+
+parser/error_recovery/issue_48411:25:26: Expected ',' after this.
+  D(int x) : assert(x > 0) assert(x - 1 > 0);
+                         ^
+
+parser/error_recovery/issue_48411:30:26: Expected ',' after this.
+  E(int x) : assert(x > 0) this.y = x*2;
+                         ^
+
+beginCompilationUnit(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(A, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(class, null, null, null, A)
+      handleNoType(A)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(A)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, A)
+            handleNoType({)
+            handleIdentifier(A, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, A, (, null, ;)
+        endMember()
+        beginMetadataStar(A)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, A)
+            handleNoType(;)
+            handleIdentifier(A, methodDeclaration)
+            handleIdentifier(y, methodDeclarationContinuation)
+            handleQualified(.)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, A, (, null, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(B, classOrMixinDeclaration)
+    handleNoTypeVariables(extends)
+    beginClassDeclaration(class, null, null, null, B)
+      handleIdentifier(A, typeReference)
+      handleNoTypeArguments({)
+      handleType(A, null)
+      handleClassExtends(extends, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(B)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, B)
+            handleNoType({)
+            handleIdentifier(B, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(>)
+                  handleNoArguments(>)
+                  handleSend(x, >)
+                  beginBinaryExpression(>)
+                    handleLiteralInt(0)
+                  endBinaryExpression(>)
+                endAssert(assert, Assert.Initializer, (, null, super)
+              endInitializer(super)
+              handleRecoverableError(Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}], ), ))
+              beginInitializer(super)
+                handleSuperExpression(super, expression)
+                handleNoTypeArguments(()
+                beginArguments(()
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments())
+                  handleNoArguments())
+                  handleSend(x, ))
+                endArguments(1, (, ))
+                handleSend(super, ;)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, B, (, :, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(B2, classOrMixinDeclaration)
+    handleNoTypeVariables(extends)
+    beginClassDeclaration(class, null, null, null, B2)
+      handleIdentifier(A, typeReference)
+      handleNoTypeArguments({)
+      handleType(A, null)
+      handleClassExtends(extends, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(B2)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, B2)
+            handleNoType({)
+            handleIdentifier(B2, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(>)
+                  handleNoArguments(>)
+                  handleSend(x, >)
+                  beginBinaryExpression(>)
+                    handleLiteralInt(0)
+                  endBinaryExpression(>)
+                endAssert(assert, Assert.Initializer, (, null, super)
+              endInitializer(super)
+              handleRecoverableError(Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}], ), ))
+              beginInitializer(super)
+                handleSuperExpression(super, expression)
+                handleIdentifier(y, expressionContinuation)
+                handleNoTypeArguments(()
+                beginArguments(()
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments())
+                  handleNoArguments())
+                  handleSend(x, ))
+                endArguments(1, (, ))
+                handleSend(y, ;)
+                handleEndingBinaryExpression(.)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, B2, (, :, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(B3, classOrMixinDeclaration)
+    handleNoTypeVariables(extends)
+    beginClassDeclaration(class, null, null, null, B3)
+      handleIdentifier(A, typeReference)
+      handleNoTypeArguments({)
+      handleType(A, null)
+      handleClassExtends(extends, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(B3)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, B3)
+            handleNoType({)
+            handleIdentifier(B3, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(>)
+                  handleNoArguments(>)
+                  handleSend(x, >)
+                  beginBinaryExpression(>)
+                    handleLiteralInt(0)
+                  endBinaryExpression(>)
+                endAssert(assert, Assert.Initializer, (, null, this)
+              endInitializer(this)
+              handleRecoverableError(Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}], ), ))
+              beginInitializer(this)
+                handleThisExpression(this, expression)
+                handleIdentifier(y, expressionContinuation)
+                handleNoTypeArguments(()
+                beginArguments(()
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments())
+                  handleNoArguments())
+                  handleSend(x, ))
+                endArguments(1, (, ))
+                handleSend(y, ;)
+                handleEndingBinaryExpression(.)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, B3, (, :, ;)
+        endMember()
+        beginMetadataStar(B3)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, B3)
+            handleNoType(;)
+            handleIdentifier(B3, methodDeclaration)
+            handleIdentifier(y, methodDeclarationContinuation)
+            handleQualified(.)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, B3, (, null, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(C, classOrMixinDeclaration)
+    handleNoTypeVariables(extends)
+    beginClassDeclaration(class, null, null, null, C)
+      handleIdentifier(A, typeReference)
+      handleNoTypeArguments({)
+      handleType(A, null)
+      handleClassExtends(extends, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(y)
+            handleType(int, null)
+            handleIdentifier(y, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(C)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, C)
+            handleNoType(;)
+            handleIdentifier(C, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(>)
+                  handleNoArguments(>)
+                  handleSend(x, >)
+                  beginBinaryExpression(>)
+                    handleLiteralInt(0)
+                  endBinaryExpression(>)
+                endAssert(assert, Assert.Initializer, (, null, y)
+              endInitializer(y)
+              handleRecoverableError(Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}], ), ))
+              beginInitializer(y)
+                handleIdentifier(y, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(y, =)
+                handleLiteralInt(2)
+                beginBinaryExpression(*)
+                  handleLiteralInt(21)
+                endBinaryExpression(*)
+                handleAssignmentExpression(=)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, C, (, :, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(D, classOrMixinDeclaration)
+    handleNoTypeVariables(extends)
+    beginClassDeclaration(class, null, null, null, D)
+      handleIdentifier(A, typeReference)
+      handleNoTypeArguments({)
+      handleType(A, null)
+      handleClassExtends(extends, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(D)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, D)
+            handleNoType({)
+            handleIdentifier(D, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(>)
+                  handleNoArguments(>)
+                  handleSend(x, >)
+                  beginBinaryExpression(>)
+                    handleLiteralInt(0)
+                  endBinaryExpression(>)
+                endAssert(assert, Assert.Initializer, (, null, assert)
+              endInitializer(assert)
+              handleRecoverableError(Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}], ), ))
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(-)
+                  handleNoArguments(-)
+                  handleSend(x, -)
+                  beginBinaryExpression(-)
+                    handleLiteralInt(1)
+                  endBinaryExpression(-)
+                  beginBinaryExpression(>)
+                    handleLiteralInt(0)
+                  endBinaryExpression(>)
+                endAssert(assert, Assert.Initializer, (, null, ;)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, D, (, :, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(E, classOrMixinDeclaration)
+    handleNoTypeVariables(extends)
+    beginClassDeclaration(class, null, null, null, E)
+      handleIdentifier(A, typeReference)
+      handleNoTypeArguments({)
+      handleType(A, null)
+      handleClassExtends(extends, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(final)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(y)
+            handleType(int, null)
+            handleIdentifier(y, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, null, null, final, 1, final, ;)
+        endMember()
+        beginMetadataStar(E)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, E)
+            handleNoType(;)
+            handleIdentifier(E, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(>)
+                  handleNoArguments(>)
+                  handleSend(x, >)
+                  beginBinaryExpression(>)
+                    handleLiteralInt(0)
+                  endBinaryExpression(>)
+                endAssert(assert, Assert.Initializer, (, null, this)
+              endInitializer(this)
+              handleRecoverableError(Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}], ), ))
+              beginInitializer(this)
+                handleThisExpression(this, expression)
+                handleIdentifier(y, expressionContinuation)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(y, =)
+                handleEndingBinaryExpression(.)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(*)
+                handleNoArguments(*)
+                handleSend(x, *)
+                beginBinaryExpression(*)
+                  handleLiteralInt(2)
+                endBinaryExpression(*)
+                handleAssignmentExpression(=)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, E, (, :, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
+endCompilationUnit(7, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.intertwined.expect
new file mode 100644
index 0000000..bd0147c
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.intertwined.expect
@@ -0,0 +1,1035 @@
+parseUnit(class)
+  skipErrorTokens(class)
+  listener: beginCompilationUnit(class)
+  syntheticPreviousToken(class)
+  parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+    parseMetadataStar()
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(A, classOrMixinDeclaration)
+        listener: handleNoTypeVariables({)
+        listener: beginClassDeclaration(class, null, null, null, A)
+        parseClass(A, class, class, A)
+          parseClassHeaderOpt(A, class, class)
+            parseClassExtendsOpt(A)
+              listener: handleNoType(A)
+              listener: handleClassExtends(null, 1)
+            parseClassWithClauseOpt(A)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(A)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, A)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, A)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, A)
+              parseMetadataStar({)
+                listener: beginMetadataStar(A)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod({, null, null, null, null, null, null, {, Instance of 'NoType', null, A, DeclarationKind.Class, A, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, A)
+                listener: handleNoType({)
+                ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
+                  listener: handleIdentifier(A, methodDeclaration)
+                parseQualifiedRestOpt(A, methodDeclarationContinuation)
+                parseMethodTypeVar(A)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(A, A, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(A, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, A, (, null, ;)
+              listener: endMember()
+            notEofOrValue(}, A)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, A)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(A)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(.)
+              parseMethod(;, null, null, null, null, null, null, ;, Instance of 'NoType', null, A, DeclarationKind.Class, A, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, A)
+                listener: handleNoType(;)
+                ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
+                  listener: handleIdentifier(A, methodDeclaration)
+                parseQualifiedRestOpt(A, methodDeclarationContinuation)
+                  parseQualifiedRest(A, methodDeclarationContinuation)
+                    ensureIdentifier(., methodDeclarationContinuation)
+                      listener: handleIdentifier(y, methodDeclarationContinuation)
+                    listener: handleQualified(.)
+                parseMethodTypeVar(y)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(y, A, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(y, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, A, (, null, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(}, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(B, classOrMixinDeclaration)
+        listener: handleNoTypeVariables(extends)
+        listener: beginClassDeclaration(class, null, null, null, B)
+        parseClass(B, class, class, B)
+          parseClassHeaderOpt(B, class, class)
+            parseClassExtendsOpt(B)
+              parseClassExtendsSeenExtendsClause(extends, B)
+                listener: handleIdentifier(A, typeReference)
+                listener: handleNoTypeArguments({)
+                listener: handleType(A, null)
+                listener: handleClassExtends(extends, 1)
+            parseClassWithClauseOpt(A)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(A)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, B)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, B)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, B)
+              parseMetadataStar({)
+                listener: beginMetadataStar(B)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod({, null, null, null, null, null, null, {, Instance of 'NoType', null, B, DeclarationKind.Class, B, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, B)
+                listener: handleNoType({)
+                ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
+                  listener: handleIdentifier(B, methodDeclaration)
+                parseQualifiedRestOpt(B, methodDeclarationContinuation)
+                parseMethodTypeVar(B)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(B, B, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(B, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  parseInitializers(:)
+                    listener: beginInitializers(:)
+                    parseInitializer(:)
+                      listener: beginInitializer(assert)
+                      parseAssert(:, Assert.Initializer)
+                        listener: beginAssert(assert, Assert.Initializer)
+                        parseExpression(()
+                          parsePrecedenceExpression((, 1, true)
+                            parseUnaryExpression((, true)
+                              parsePrimary((, expression)
+                                parseSendOrFunctionLiteral((, expression)
+                                  parseSend((, expression)
+                                    isNextIdentifier(()
+                                    ensureIdentifier((, expression)
+                                      listener: handleIdentifier(x, expression)
+                                    listener: handleNoTypeArguments(>)
+                                    parseArgumentsOpt(x)
+                                      listener: handleNoArguments(>)
+                                    listener: handleSend(x, >)
+                            listener: beginBinaryExpression(>)
+                            parsePrecedenceExpression(>, 9, true)
+                              parseUnaryExpression(>, true)
+                                parsePrimary(>, expression)
+                                  parseLiteralInt(>)
+                                    listener: handleLiteralInt(0)
+                            listener: endBinaryExpression(>)
+                        listener: endAssert(assert, Assert.Initializer, (, null, super)
+                      listener: endInitializer(super)
+                    reportRecoverableError(), Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}])
+                      listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}], ), ))
+                    rewriter()
+                    parseInitializer(,)
+                      listener: beginInitializer(super)
+                      parseSuperInitializerExpression(,)
+                        parseInitializerExpressionRest(,)
+                          parseExpression(,)
+                            parsePrecedenceExpression(,, 1, true)
+                              parseUnaryExpression(,, true)
+                                parsePrimary(,, expression)
+                                  parseSuperExpression(,, expression)
+                                    listener: handleSuperExpression(super, expression)
+                                    listener: handleNoTypeArguments(()
+                                    parseArguments(super)
+                                      parseArgumentsRest(()
+                                        listener: beginArguments(()
+                                        parseExpression(()
+                                          parsePrecedenceExpression((, 1, true)
+                                            parseUnaryExpression((, true)
+                                              parsePrimary((, expression)
+                                                parseSendOrFunctionLiteral((, expression)
+                                                  parseSend((, expression)
+                                                    isNextIdentifier(()
+                                                    ensureIdentifier((, expression)
+                                                      listener: handleIdentifier(x, expression)
+                                                    listener: handleNoTypeArguments())
+                                                    parseArgumentsOpt(x)
+                                                      listener: handleNoArguments())
+                                                    listener: handleSend(x, ))
+                                        listener: endArguments(1, (, ))
+                                    listener: handleSend(super, ;)
+                          listener: endInitializer(;)
+                    listener: endInitializers(2, :, ;)
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, B, (, :, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(}, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(B2, classOrMixinDeclaration)
+        listener: handleNoTypeVariables(extends)
+        listener: beginClassDeclaration(class, null, null, null, B2)
+        parseClass(B2, class, class, B2)
+          parseClassHeaderOpt(B2, class, class)
+            parseClassExtendsOpt(B2)
+              parseClassExtendsSeenExtendsClause(extends, B2)
+                listener: handleIdentifier(A, typeReference)
+                listener: handleNoTypeArguments({)
+                listener: handleType(A, null)
+                listener: handleClassExtends(extends, 1)
+            parseClassWithClauseOpt(A)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(A)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, B2)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, B2)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, B2)
+              parseMetadataStar({)
+                listener: beginMetadataStar(B2)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod({, null, null, null, null, null, null, {, Instance of 'NoType', null, B2, DeclarationKind.Class, B2, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, B2)
+                listener: handleNoType({)
+                ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
+                  listener: handleIdentifier(B2, methodDeclaration)
+                parseQualifiedRestOpt(B2, methodDeclarationContinuation)
+                parseMethodTypeVar(B2)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(B2, B2, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(B2, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  parseInitializers(:)
+                    listener: beginInitializers(:)
+                    parseInitializer(:)
+                      listener: beginInitializer(assert)
+                      parseAssert(:, Assert.Initializer)
+                        listener: beginAssert(assert, Assert.Initializer)
+                        parseExpression(()
+                          parsePrecedenceExpression((, 1, true)
+                            parseUnaryExpression((, true)
+                              parsePrimary((, expression)
+                                parseSendOrFunctionLiteral((, expression)
+                                  parseSend((, expression)
+                                    isNextIdentifier(()
+                                    ensureIdentifier((, expression)
+                                      listener: handleIdentifier(x, expression)
+                                    listener: handleNoTypeArguments(>)
+                                    parseArgumentsOpt(x)
+                                      listener: handleNoArguments(>)
+                                    listener: handleSend(x, >)
+                            listener: beginBinaryExpression(>)
+                            parsePrecedenceExpression(>, 9, true)
+                              parseUnaryExpression(>, true)
+                                parsePrimary(>, expression)
+                                  parseLiteralInt(>)
+                                    listener: handleLiteralInt(0)
+                            listener: endBinaryExpression(>)
+                        listener: endAssert(assert, Assert.Initializer, (, null, super)
+                      listener: endInitializer(super)
+                    reportRecoverableError(), Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}])
+                      listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}], ), ))
+                    rewriter()
+                    parseInitializer(,)
+                      listener: beginInitializer(super)
+                      parseSuperInitializerExpression(,)
+                        parseInitializerExpressionRest(,)
+                          parseExpression(,)
+                            parsePrecedenceExpression(,, 1, true)
+                              parseUnaryExpression(,, true)
+                                parsePrimary(,, expression)
+                                  parseSuperExpression(,, expression)
+                                    listener: handleSuperExpression(super, expression)
+                              parsePrimary(., expressionContinuation)
+                                parseSendOrFunctionLiteral(., expressionContinuation)
+                                  parseSend(., expressionContinuation)
+                                    isNextIdentifier(.)
+                                    ensureIdentifier(., expressionContinuation)
+                                      listener: handleIdentifier(y, expressionContinuation)
+                                    listener: handleNoTypeArguments(()
+                                    parseArgumentsOpt(y)
+                                      parseArguments(y)
+                                        parseArgumentsRest(()
+                                          listener: beginArguments(()
+                                          parseExpression(()
+                                            parsePrecedenceExpression((, 1, true)
+                                              parseUnaryExpression((, true)
+                                                parsePrimary((, expression)
+                                                  parseSendOrFunctionLiteral((, expression)
+                                                    parseSend((, expression)
+                                                      isNextIdentifier(()
+                                                      ensureIdentifier((, expression)
+                                                        listener: handleIdentifier(x, expression)
+                                                      listener: handleNoTypeArguments())
+                                                      parseArgumentsOpt(x)
+                                                        listener: handleNoArguments())
+                                                      listener: handleSend(x, ))
+                                          listener: endArguments(1, (, ))
+                                    listener: handleSend(y, ;)
+                              listener: handleEndingBinaryExpression(.)
+                          listener: endInitializer(;)
+                    listener: endInitializers(2, :, ;)
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, B2, (, :, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(}, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(B3, classOrMixinDeclaration)
+        listener: handleNoTypeVariables(extends)
+        listener: beginClassDeclaration(class, null, null, null, B3)
+        parseClass(B3, class, class, B3)
+          parseClassHeaderOpt(B3, class, class)
+            parseClassExtendsOpt(B3)
+              parseClassExtendsSeenExtendsClause(extends, B3)
+                listener: handleIdentifier(A, typeReference)
+                listener: handleNoTypeArguments({)
+                listener: handleType(A, null)
+                listener: handleClassExtends(extends, 1)
+            parseClassWithClauseOpt(A)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(A)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, B3)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, B3)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, B3)
+              parseMetadataStar({)
+                listener: beginMetadataStar(B3)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod({, null, null, null, null, null, null, {, Instance of 'NoType', null, B3, DeclarationKind.Class, B3, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, B3)
+                listener: handleNoType({)
+                ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
+                  listener: handleIdentifier(B3, methodDeclaration)
+                parseQualifiedRestOpt(B3, methodDeclarationContinuation)
+                parseMethodTypeVar(B3)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(B3, B3, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(B3, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  parseInitializers(:)
+                    listener: beginInitializers(:)
+                    parseInitializer(:)
+                      listener: beginInitializer(assert)
+                      parseAssert(:, Assert.Initializer)
+                        listener: beginAssert(assert, Assert.Initializer)
+                        parseExpression(()
+                          parsePrecedenceExpression((, 1, true)
+                            parseUnaryExpression((, true)
+                              parsePrimary((, expression)
+                                parseSendOrFunctionLiteral((, expression)
+                                  parseSend((, expression)
+                                    isNextIdentifier(()
+                                    ensureIdentifier((, expression)
+                                      listener: handleIdentifier(x, expression)
+                                    listener: handleNoTypeArguments(>)
+                                    parseArgumentsOpt(x)
+                                      listener: handleNoArguments(>)
+                                    listener: handleSend(x, >)
+                            listener: beginBinaryExpression(>)
+                            parsePrecedenceExpression(>, 9, true)
+                              parseUnaryExpression(>, true)
+                                parsePrimary(>, expression)
+                                  parseLiteralInt(>)
+                                    listener: handleLiteralInt(0)
+                            listener: endBinaryExpression(>)
+                        listener: endAssert(assert, Assert.Initializer, (, null, this)
+                      listener: endInitializer(this)
+                    reportRecoverableError(), Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}])
+                      listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}], ), ))
+                    rewriter()
+                    parseInitializer(,)
+                      listener: beginInitializer(this)
+                      parseInitializerExpressionRest(,)
+                        parseExpression(,)
+                          parsePrecedenceExpression(,, 1, true)
+                            parseUnaryExpression(,, true)
+                              parsePrimary(,, expression)
+                                parseThisExpression(,, expression)
+                                  listener: handleThisExpression(this, expression)
+                            parsePrimary(., expressionContinuation)
+                              parseSendOrFunctionLiteral(., expressionContinuation)
+                                parseSend(., expressionContinuation)
+                                  isNextIdentifier(.)
+                                  ensureIdentifier(., expressionContinuation)
+                                    listener: handleIdentifier(y, expressionContinuation)
+                                  listener: handleNoTypeArguments(()
+                                  parseArgumentsOpt(y)
+                                    parseArguments(y)
+                                      parseArgumentsRest(()
+                                        listener: beginArguments(()
+                                        parseExpression(()
+                                          parsePrecedenceExpression((, 1, true)
+                                            parseUnaryExpression((, true)
+                                              parsePrimary((, expression)
+                                                parseSendOrFunctionLiteral((, expression)
+                                                  parseSend((, expression)
+                                                    isNextIdentifier(()
+                                                    ensureIdentifier((, expression)
+                                                      listener: handleIdentifier(x, expression)
+                                                    listener: handleNoTypeArguments())
+                                                    parseArgumentsOpt(x)
+                                                      listener: handleNoArguments())
+                                                    listener: handleSend(x, ))
+                                        listener: endArguments(1, (, ))
+                                  listener: handleSend(y, ;)
+                            listener: handleEndingBinaryExpression(.)
+                        listener: endInitializer(;)
+                    listener: endInitializers(2, :, ;)
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, B3, (, :, ;)
+              listener: endMember()
+            notEofOrValue(}, B3)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, B3)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(B3)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(.)
+              parseMethod(;, null, null, null, null, null, null, ;, Instance of 'NoType', null, B3, DeclarationKind.Class, B3, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, B3)
+                listener: handleNoType(;)
+                ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
+                  listener: handleIdentifier(B3, methodDeclaration)
+                parseQualifiedRestOpt(B3, methodDeclarationContinuation)
+                  parseQualifiedRest(B3, methodDeclarationContinuation)
+                    ensureIdentifier(., methodDeclarationContinuation)
+                      listener: handleIdentifier(y, methodDeclarationContinuation)
+                    listener: handleQualified(.)
+                parseMethodTypeVar(y)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(y, B3, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(y, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, B3, (, null, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(}, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(C, classOrMixinDeclaration)
+        listener: handleNoTypeVariables(extends)
+        listener: beginClassDeclaration(class, null, null, null, C)
+        parseClass(C, class, class, C)
+          parseClassHeaderOpt(C, class, class)
+            parseClassExtendsOpt(C)
+              parseClassExtendsSeenExtendsClause(extends, C)
+                listener: handleIdentifier(A, typeReference)
+                listener: handleNoTypeArguments({)
+                listener: handleType(A, null)
+                listener: handleClassExtends(extends, 1)
+            parseClassWithClauseOpt(A)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(A)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, C)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, int)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, C)
+              parseMetadataStar({)
+                listener: beginMetadataStar(int)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', y, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(y)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(y, fieldDeclaration)
+                parseFieldInitializerOpt(y, y, null, null, null, null, DeclarationKind.Class, C)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+              listener: endMember()
+            notEofOrValue(}, C)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(C)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod(;, null, null, null, null, null, null, ;, Instance of 'NoType', null, C, DeclarationKind.Class, C, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, C)
+                listener: handleNoType(;)
+                ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
+                  listener: handleIdentifier(C, methodDeclaration)
+                parseQualifiedRestOpt(C, methodDeclarationContinuation)
+                parseMethodTypeVar(C)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(C, C, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(C, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  parseInitializers(:)
+                    listener: beginInitializers(:)
+                    parseInitializer(:)
+                      listener: beginInitializer(assert)
+                      parseAssert(:, Assert.Initializer)
+                        listener: beginAssert(assert, Assert.Initializer)
+                        parseExpression(()
+                          parsePrecedenceExpression((, 1, true)
+                            parseUnaryExpression((, true)
+                              parsePrimary((, expression)
+                                parseSendOrFunctionLiteral((, expression)
+                                  parseSend((, expression)
+                                    isNextIdentifier(()
+                                    ensureIdentifier((, expression)
+                                      listener: handleIdentifier(x, expression)
+                                    listener: handleNoTypeArguments(>)
+                                    parseArgumentsOpt(x)
+                                      listener: handleNoArguments(>)
+                                    listener: handleSend(x, >)
+                            listener: beginBinaryExpression(>)
+                            parsePrecedenceExpression(>, 9, true)
+                              parseUnaryExpression(>, true)
+                                parsePrimary(>, expression)
+                                  parseLiteralInt(>)
+                                    listener: handleLiteralInt(0)
+                            listener: endBinaryExpression(>)
+                        listener: endAssert(assert, Assert.Initializer, (, null, y)
+                      listener: endInitializer(y)
+                    reportRecoverableError(), Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}])
+                      listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}], ), ))
+                    rewriter()
+                    parseInitializer(,)
+                      listener: beginInitializer(y)
+                      parseInitializerExpressionRest(,)
+                        parseExpression(,)
+                          parsePrecedenceExpression(,, 1, true)
+                            parseUnaryExpression(,, true)
+                              parsePrimary(,, expression)
+                                parseSendOrFunctionLiteral(,, expression)
+                                  parseSend(,, expression)
+                                    isNextIdentifier(,)
+                                    ensureIdentifier(,, expression)
+                                      listener: handleIdentifier(y, expression)
+                                    listener: handleNoTypeArguments(=)
+                                    parseArgumentsOpt(y)
+                                      listener: handleNoArguments(=)
+                                    listener: handleSend(y, =)
+                            parsePrecedenceExpression(=, 1, true)
+                              parseUnaryExpression(=, true)
+                                parsePrimary(=, expression)
+                                  parseLiteralInt(=)
+                                    listener: handleLiteralInt(2)
+                              listener: beginBinaryExpression(*)
+                              parsePrecedenceExpression(*, 15, true)
+                                parseUnaryExpression(*, true)
+                                  parsePrimary(*, expression)
+                                    parseLiteralInt(*)
+                                      listener: handleLiteralInt(21)
+                              listener: endBinaryExpression(*)
+                            listener: handleAssignmentExpression(=)
+                        listener: endInitializer(;)
+                    listener: endInitializers(2, :, ;)
+                parseAsyncModifierOpt(21)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(21, false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, C, (, :, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(}, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(D, classOrMixinDeclaration)
+        listener: handleNoTypeVariables(extends)
+        listener: beginClassDeclaration(class, null, null, null, D)
+        parseClass(D, class, class, D)
+          parseClassHeaderOpt(D, class, class)
+            parseClassExtendsOpt(D)
+              parseClassExtendsSeenExtendsClause(extends, D)
+                listener: handleIdentifier(A, typeReference)
+                listener: handleNoTypeArguments({)
+                listener: handleType(A, null)
+                listener: handleClassExtends(extends, 1)
+            parseClassWithClauseOpt(A)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(A)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, D)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, D)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, D)
+              parseMetadataStar({)
+                listener: beginMetadataStar(D)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod({, null, null, null, null, null, null, {, Instance of 'NoType', null, D, DeclarationKind.Class, D, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, D)
+                listener: handleNoType({)
+                ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
+                  listener: handleIdentifier(D, methodDeclaration)
+                parseQualifiedRestOpt(D, methodDeclarationContinuation)
+                parseMethodTypeVar(D)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(D, D, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(D, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  parseInitializers(:)
+                    listener: beginInitializers(:)
+                    parseInitializer(:)
+                      listener: beginInitializer(assert)
+                      parseAssert(:, Assert.Initializer)
+                        listener: beginAssert(assert, Assert.Initializer)
+                        parseExpression(()
+                          parsePrecedenceExpression((, 1, true)
+                            parseUnaryExpression((, true)
+                              parsePrimary((, expression)
+                                parseSendOrFunctionLiteral((, expression)
+                                  parseSend((, expression)
+                                    isNextIdentifier(()
+                                    ensureIdentifier((, expression)
+                                      listener: handleIdentifier(x, expression)
+                                    listener: handleNoTypeArguments(>)
+                                    parseArgumentsOpt(x)
+                                      listener: handleNoArguments(>)
+                                    listener: handleSend(x, >)
+                            listener: beginBinaryExpression(>)
+                            parsePrecedenceExpression(>, 9, true)
+                              parseUnaryExpression(>, true)
+                                parsePrimary(>, expression)
+                                  parseLiteralInt(>)
+                                    listener: handleLiteralInt(0)
+                            listener: endBinaryExpression(>)
+                        listener: endAssert(assert, Assert.Initializer, (, null, assert)
+                      listener: endInitializer(assert)
+                    reportRecoverableError(), Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}])
+                      listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}], ), ))
+                    rewriter()
+                    parseInitializer(,)
+                      listener: beginInitializer(assert)
+                      parseAssert(,, Assert.Initializer)
+                        listener: beginAssert(assert, Assert.Initializer)
+                        parseExpression(()
+                          parsePrecedenceExpression((, 1, true)
+                            parseUnaryExpression((, true)
+                              parsePrimary((, expression)
+                                parseSendOrFunctionLiteral((, expression)
+                                  parseSend((, expression)
+                                    isNextIdentifier(()
+                                    ensureIdentifier((, expression)
+                                      listener: handleIdentifier(x, expression)
+                                    listener: handleNoTypeArguments(-)
+                                    parseArgumentsOpt(x)
+                                      listener: handleNoArguments(-)
+                                    listener: handleSend(x, -)
+                            listener: beginBinaryExpression(-)
+                            parsePrecedenceExpression(-, 14, true)
+                              parseUnaryExpression(-, true)
+                                parsePrimary(-, expression)
+                                  parseLiteralInt(-)
+                                    listener: handleLiteralInt(1)
+                            listener: endBinaryExpression(-)
+                            listener: beginBinaryExpression(>)
+                            parsePrecedenceExpression(>, 9, true)
+                              parseUnaryExpression(>, true)
+                                parsePrimary(>, expression)
+                                  parseLiteralInt(>)
+                                    listener: handleLiteralInt(0)
+                            listener: endBinaryExpression(>)
+                        listener: endAssert(assert, Assert.Initializer, (, null, ;)
+                      listener: endInitializer(;)
+                    listener: endInitializers(2, :, ;)
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, D, (, :, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(}, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(E, classOrMixinDeclaration)
+        listener: handleNoTypeVariables(extends)
+        listener: beginClassDeclaration(class, null, null, null, E)
+        parseClass(E, class, class, E)
+          parseClassHeaderOpt(E, class, class)
+            parseClassExtendsOpt(E)
+              parseClassExtendsSeenExtendsClause(extends, E)
+                listener: handleIdentifier(A, typeReference)
+                listener: handleNoTypeArguments({)
+                listener: handleType(A, null)
+                listener: handleClassExtends(extends, 1)
+            parseClassWithClauseOpt(A)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(A)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, E)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, final)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, E)
+              parseMetadataStar({)
+                listener: beginMetadataStar(final)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields({, null, null, null, null, null, final, final, Instance of 'SimpleType', y, DeclarationKind.Class, E, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(y)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(y, fieldDeclaration)
+                parseFieldInitializerOpt(y, y, null, null, null, final, DeclarationKind.Class, E)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+              listener: endMember()
+            notEofOrValue(}, E)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, E)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(E)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod(;, null, null, null, null, null, null, ;, Instance of 'NoType', null, E, DeclarationKind.Class, E, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, E)
+                listener: handleNoType(;)
+                ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
+                  listener: handleIdentifier(E, methodDeclaration)
+                parseQualifiedRestOpt(E, methodDeclarationContinuation)
+                parseMethodTypeVar(E)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(E, E, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(E, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  parseInitializers(:)
+                    listener: beginInitializers(:)
+                    parseInitializer(:)
+                      listener: beginInitializer(assert)
+                      parseAssert(:, Assert.Initializer)
+                        listener: beginAssert(assert, Assert.Initializer)
+                        parseExpression(()
+                          parsePrecedenceExpression((, 1, true)
+                            parseUnaryExpression((, true)
+                              parsePrimary((, expression)
+                                parseSendOrFunctionLiteral((, expression)
+                                  parseSend((, expression)
+                                    isNextIdentifier(()
+                                    ensureIdentifier((, expression)
+                                      listener: handleIdentifier(x, expression)
+                                    listener: handleNoTypeArguments(>)
+                                    parseArgumentsOpt(x)
+                                      listener: handleNoArguments(>)
+                                    listener: handleSend(x, >)
+                            listener: beginBinaryExpression(>)
+                            parsePrecedenceExpression(>, 9, true)
+                              parseUnaryExpression(>, true)
+                                parsePrimary(>, expression)
+                                  parseLiteralInt(>)
+                                    listener: handleLiteralInt(0)
+                            listener: endBinaryExpression(>)
+                        listener: endAssert(assert, Assert.Initializer, (, null, this)
+                      listener: endInitializer(this)
+                    reportRecoverableError(), Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}])
+                      listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ',' after this., null, {string: ,}], ), ))
+                    rewriter()
+                    parseInitializer(,)
+                      listener: beginInitializer(this)
+                      parseInitializerExpressionRest(,)
+                        parseExpression(,)
+                          parsePrecedenceExpression(,, 1, true)
+                            parseUnaryExpression(,, true)
+                              parsePrimary(,, expression)
+                                parseThisExpression(,, expression)
+                                  listener: handleThisExpression(this, expression)
+                            parsePrimary(., expressionContinuation)
+                              parseSendOrFunctionLiteral(., expressionContinuation)
+                                parseSend(., expressionContinuation)
+                                  isNextIdentifier(.)
+                                  ensureIdentifier(., expressionContinuation)
+                                    listener: handleIdentifier(y, expressionContinuation)
+                                  listener: handleNoTypeArguments(=)
+                                  parseArgumentsOpt(y)
+                                    listener: handleNoArguments(=)
+                                  listener: handleSend(y, =)
+                            listener: handleEndingBinaryExpression(.)
+                            parsePrecedenceExpression(=, 1, true)
+                              parseUnaryExpression(=, true)
+                                parsePrimary(=, expression)
+                                  parseSendOrFunctionLiteral(=, expression)
+                                    parseSend(=, expression)
+                                      isNextIdentifier(=)
+                                      ensureIdentifier(=, expression)
+                                        listener: handleIdentifier(x, expression)
+                                      listener: handleNoTypeArguments(*)
+                                      parseArgumentsOpt(x)
+                                        listener: handleNoArguments(*)
+                                      listener: handleSend(x, *)
+                              listener: beginBinaryExpression(*)
+                              parsePrecedenceExpression(*, 15, true)
+                                parseUnaryExpression(*, true)
+                                  parsePrimary(*, expression)
+                                    parseLiteralInt(*)
+                                      listener: handleLiteralInt(2)
+                              listener: endBinaryExpression(*)
+                            listener: handleAssignmentExpression(=)
+                        listener: endInitializer(;)
+                    listener: endInitializers(2, :, ;)
+                parseAsyncModifierOpt(2)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(2, false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, E, (, :, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration()
+  reportAllErrorTokens(class)
+  listener: endCompilationUnit(7, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.parser.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.parser.expect
new file mode 100644
index 0000000..8495c22
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.parser.expect
@@ -0,0 +1,67 @@
+NOTICE: Stream was rewritten by parser!
+
+class A {
+A(int x);
+A.y(int x);
+}
+
+class B extends A {
+B(int x) : assert(x > 0) ,super(x);
+}
+
+class B2 extends A {
+B2(int x) : assert(x > 0) ,super.y(x);
+}
+
+class B3 extends A {
+B3(int x) : assert(x > 0) ,this.y(x);
+B3.y(int x);
+}
+
+class C extends A {
+int y;
+C(int x) : assert(x > 0) ,y = 2*21;
+}
+
+class D extends A {
+D(int x) : assert(x > 0) ,assert(x - 1 > 0);
+}
+
+class E extends A {
+final int y;
+E(int x) : assert(x > 0) ,this.y = x*2;
+}
+
+
+class[KeywordToken] A[StringToken] {[BeginToken]
+A[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken];[SimpleToken]
+A[StringToken].[SimpleToken]y[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] B[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+B[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] ,[SyntheticToken]super[KeywordToken]([BeginToken]x[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] B2[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+B2[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] ,[SyntheticToken]super[KeywordToken].[SimpleToken]y[StringToken]([BeginToken]x[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] B3[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+B3[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] ,[SyntheticToken]this[KeywordToken].[SimpleToken]y[StringToken]([BeginToken]x[StringToken])[SimpleToken];[SimpleToken]
+B3[StringToken].[SimpleToken]y[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] C[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+int[StringToken] y[StringToken];[SimpleToken]
+C[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] ,[SyntheticToken]y[StringToken] =[SimpleToken] 2[StringToken]*[SimpleToken]21[StringToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] D[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+D[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] ,[SyntheticToken]assert[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] E[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+final[KeywordToken] int[StringToken] y[StringToken];[SimpleToken]
+E[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] ,[SyntheticToken]this[KeywordToken].[SimpleToken]y[StringToken] =[SimpleToken] x[StringToken]*[SimpleToken]2[StringToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.scanner.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.scanner.expect
new file mode 100644
index 0000000..5d6cd73
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.scanner.expect
@@ -0,0 +1,65 @@
+class A {
+A(int x);
+A.y(int x);
+}
+
+class B extends A {
+B(int x) : assert(x > 0) super(x);
+}
+
+class B2 extends A {
+B2(int x) : assert(x > 0) super.y(x);
+}
+
+class B3 extends A {
+B3(int x) : assert(x > 0) this.y(x);
+B3.y(int x);
+}
+
+class C extends A {
+int y;
+C(int x) : assert(x > 0) y = 2*21;
+}
+
+class D extends A {
+D(int x) : assert(x > 0) assert(x - 1 > 0);
+}
+
+class E extends A {
+final int y;
+E(int x) : assert(x > 0) this.y = x*2;
+}
+
+
+class[KeywordToken] A[StringToken] {[BeginToken]
+A[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken];[SimpleToken]
+A[StringToken].[SimpleToken]y[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] B[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+B[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] super[KeywordToken]([BeginToken]x[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] B2[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+B2[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] super[KeywordToken].[SimpleToken]y[StringToken]([BeginToken]x[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] B3[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+B3[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] this[KeywordToken].[SimpleToken]y[StringToken]([BeginToken]x[StringToken])[SimpleToken];[SimpleToken]
+B3[StringToken].[SimpleToken]y[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] C[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+int[StringToken] y[StringToken];[SimpleToken]
+C[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] y[StringToken] =[SimpleToken] 2[StringToken]*[SimpleToken]21[StringToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] D[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+D[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] E[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+final[KeywordToken] int[StringToken] y[StringToken];[SimpleToken]
+E[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken] this[KeywordToken].[SimpleToken]y[StringToken] =[SimpleToken] x[StringToken]*[SimpleToken]2[StringToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart
new file mode 100644
index 0000000..da7078e
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart
@@ -0,0 +1,31 @@
+class A {
+  A(int x);
+  A.y(int x);
+}
+
+class B extends A {
+  B(int x) : assert(x > 0), super(x);
+}
+
+class B2 extends A {
+  B2(int x) : assert(x > 0), super.y(x);
+}
+
+class B3 extends A {
+  B3(int x) : assert(x > 0), this.y(x);
+  B3.y(int x);
+}
+
+class C extends A {
+  int y;
+  C(int x) : assert(x > 0), y = 2*21;
+}
+
+class D extends A {
+  D(int x) : assert(x > 0), assert(x - 1 > 0);
+}
+
+class E extends A {
+  final int y;
+  E(int x) : assert(x > 0), this.y = x*2;
+}
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.expect
new file mode 100644
index 0000000..b416e9d
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.expect
@@ -0,0 +1,502 @@
+beginCompilationUnit(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(A, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(class, null, null, null, A)
+      handleNoType(A)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(A)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, A)
+            handleNoType({)
+            handleIdentifier(A, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, A, (, null, ;)
+        endMember()
+        beginMetadataStar(A)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, A)
+            handleNoType(;)
+            handleIdentifier(A, methodDeclaration)
+            handleIdentifier(y, methodDeclarationContinuation)
+            handleQualified(.)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, A, (, null, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(B, classOrMixinDeclaration)
+    handleNoTypeVariables(extends)
+    beginClassDeclaration(class, null, null, null, B)
+      handleIdentifier(A, typeReference)
+      handleNoTypeArguments({)
+      handleType(A, null)
+      handleClassExtends(extends, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(B)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, B)
+            handleNoType({)
+            handleIdentifier(B, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(>)
+                  handleNoArguments(>)
+                  handleSend(x, >)
+                  beginBinaryExpression(>)
+                    handleLiteralInt(0)
+                  endBinaryExpression(>)
+                endAssert(assert, Assert.Initializer, (, null, ,)
+              endInitializer(,)
+              beginInitializer(super)
+                handleSuperExpression(super, expression)
+                handleNoTypeArguments(()
+                beginArguments(()
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments())
+                  handleNoArguments())
+                  handleSend(x, ))
+                endArguments(1, (, ))
+                handleSend(super, ;)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, B, (, :, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(B2, classOrMixinDeclaration)
+    handleNoTypeVariables(extends)
+    beginClassDeclaration(class, null, null, null, B2)
+      handleIdentifier(A, typeReference)
+      handleNoTypeArguments({)
+      handleType(A, null)
+      handleClassExtends(extends, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(B2)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, B2)
+            handleNoType({)
+            handleIdentifier(B2, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(>)
+                  handleNoArguments(>)
+                  handleSend(x, >)
+                  beginBinaryExpression(>)
+                    handleLiteralInt(0)
+                  endBinaryExpression(>)
+                endAssert(assert, Assert.Initializer, (, null, ,)
+              endInitializer(,)
+              beginInitializer(super)
+                handleSuperExpression(super, expression)
+                handleIdentifier(y, expressionContinuation)
+                handleNoTypeArguments(()
+                beginArguments(()
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments())
+                  handleNoArguments())
+                  handleSend(x, ))
+                endArguments(1, (, ))
+                handleSend(y, ;)
+                handleEndingBinaryExpression(.)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, B2, (, :, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(B3, classOrMixinDeclaration)
+    handleNoTypeVariables(extends)
+    beginClassDeclaration(class, null, null, null, B3)
+      handleIdentifier(A, typeReference)
+      handleNoTypeArguments({)
+      handleType(A, null)
+      handleClassExtends(extends, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(B3)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, B3)
+            handleNoType({)
+            handleIdentifier(B3, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(>)
+                  handleNoArguments(>)
+                  handleSend(x, >)
+                  beginBinaryExpression(>)
+                    handleLiteralInt(0)
+                  endBinaryExpression(>)
+                endAssert(assert, Assert.Initializer, (, null, ,)
+              endInitializer(,)
+              beginInitializer(this)
+                handleThisExpression(this, expression)
+                handleIdentifier(y, expressionContinuation)
+                handleNoTypeArguments(()
+                beginArguments(()
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments())
+                  handleNoArguments())
+                  handleSend(x, ))
+                endArguments(1, (, ))
+                handleSend(y, ;)
+                handleEndingBinaryExpression(.)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, B3, (, :, ;)
+        endMember()
+        beginMetadataStar(B3)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, B3)
+            handleNoType(;)
+            handleIdentifier(B3, methodDeclaration)
+            handleIdentifier(y, methodDeclarationContinuation)
+            handleQualified(.)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, B3, (, null, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(C, classOrMixinDeclaration)
+    handleNoTypeVariables(extends)
+    beginClassDeclaration(class, null, null, null, C)
+      handleIdentifier(A, typeReference)
+      handleNoTypeArguments({)
+      handleType(A, null)
+      handleClassExtends(extends, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(int)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(y)
+            handleType(int, null)
+            handleIdentifier(y, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(C)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, C)
+            handleNoType(;)
+            handleIdentifier(C, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(>)
+                  handleNoArguments(>)
+                  handleSend(x, >)
+                  beginBinaryExpression(>)
+                    handleLiteralInt(0)
+                  endBinaryExpression(>)
+                endAssert(assert, Assert.Initializer, (, null, ,)
+              endInitializer(,)
+              beginInitializer(y)
+                handleIdentifier(y, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(y, =)
+                handleLiteralInt(2)
+                beginBinaryExpression(*)
+                  handleLiteralInt(21)
+                endBinaryExpression(*)
+                handleAssignmentExpression(=)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, C, (, :, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(D, classOrMixinDeclaration)
+    handleNoTypeVariables(extends)
+    beginClassDeclaration(class, null, null, null, D)
+      handleIdentifier(A, typeReference)
+      handleNoTypeArguments({)
+      handleType(A, null)
+      handleClassExtends(extends, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(D)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, D)
+            handleNoType({)
+            handleIdentifier(D, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(>)
+                  handleNoArguments(>)
+                  handleSend(x, >)
+                  beginBinaryExpression(>)
+                    handleLiteralInt(0)
+                  endBinaryExpression(>)
+                endAssert(assert, Assert.Initializer, (, null, ,)
+              endInitializer(,)
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(-)
+                  handleNoArguments(-)
+                  handleSend(x, -)
+                  beginBinaryExpression(-)
+                    handleLiteralInt(1)
+                  endBinaryExpression(-)
+                  beginBinaryExpression(>)
+                    handleLiteralInt(0)
+                  endBinaryExpression(>)
+                endAssert(assert, Assert.Initializer, (, null, ;)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, D, (, :, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(E, classOrMixinDeclaration)
+    handleNoTypeVariables(extends)
+    beginClassDeclaration(class, null, null, null, E)
+      handleIdentifier(A, typeReference)
+      handleNoTypeArguments({)
+      handleType(A, null)
+      handleClassExtends(extends, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(final)
+        endMetadataStar(0)
+        beginMember()
+          beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+            handleIdentifier(int, typeReference)
+            handleNoTypeArguments(y)
+            handleType(int, null)
+            handleIdentifier(y, fieldDeclaration)
+            handleNoFieldInitializer(;)
+          endClassFields(null, null, null, null, null, final, 1, final, ;)
+        endMember()
+        beginMetadataStar(E)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, E)
+            handleNoType(;)
+            handleIdentifier(E, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+              beginMetadataStar(int)
+              endMetadataStar(0)
+              beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                handleIdentifier(int, typeReference)
+                handleNoTypeArguments(x)
+                handleType(int, null)
+                handleIdentifier(x, formalParameterDeclaration)
+                handleFormalParameterWithoutValue())
+              endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+            endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleIdentifier(x, expression)
+                  handleNoTypeArguments(>)
+                  handleNoArguments(>)
+                  handleSend(x, >)
+                  beginBinaryExpression(>)
+                    handleLiteralInt(0)
+                  endBinaryExpression(>)
+                endAssert(assert, Assert.Initializer, (, null, ,)
+              endInitializer(,)
+              beginInitializer(this)
+                handleThisExpression(this, expression)
+                handleIdentifier(y, expressionContinuation)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(y, =)
+                handleEndingBinaryExpression(.)
+                handleIdentifier(x, expression)
+                handleNoTypeArguments(*)
+                handleNoArguments(*)
+                handleSend(x, *)
+                beginBinaryExpression(*)
+                  handleLiteralInt(2)
+                endBinaryExpression(*)
+                handleAssignmentExpression(=)
+              endInitializer(;)
+            endInitializers(2, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, E, (, :, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
+endCompilationUnit(7, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.intertwined.expect
new file mode 100644
index 0000000..d3c0fc3
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.intertwined.expect
@@ -0,0 +1,1017 @@
+parseUnit(class)
+  skipErrorTokens(class)
+  listener: beginCompilationUnit(class)
+  syntheticPreviousToken(class)
+  parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+    parseMetadataStar()
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(A, classOrMixinDeclaration)
+        listener: handleNoTypeVariables({)
+        listener: beginClassDeclaration(class, null, null, null, A)
+        parseClass(A, class, class, A)
+          parseClassHeaderOpt(A, class, class)
+            parseClassExtendsOpt(A)
+              listener: handleNoType(A)
+              listener: handleClassExtends(null, 1)
+            parseClassWithClauseOpt(A)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(A)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, A)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, A)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, A)
+              parseMetadataStar({)
+                listener: beginMetadataStar(A)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod({, null, null, null, null, null, null, {, Instance of 'NoType', null, A, DeclarationKind.Class, A, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, A)
+                listener: handleNoType({)
+                ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
+                  listener: handleIdentifier(A, methodDeclaration)
+                parseQualifiedRestOpt(A, methodDeclarationContinuation)
+                parseMethodTypeVar(A)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(A, A, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(A, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, A, (, null, ;)
+              listener: endMember()
+            notEofOrValue(}, A)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, A)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(A)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(.)
+              parseMethod(;, null, null, null, null, null, null, ;, Instance of 'NoType', null, A, DeclarationKind.Class, A, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, A)
+                listener: handleNoType(;)
+                ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
+                  listener: handleIdentifier(A, methodDeclaration)
+                parseQualifiedRestOpt(A, methodDeclarationContinuation)
+                  parseQualifiedRest(A, methodDeclarationContinuation)
+                    ensureIdentifier(., methodDeclarationContinuation)
+                      listener: handleIdentifier(y, methodDeclarationContinuation)
+                    listener: handleQualified(.)
+                parseMethodTypeVar(y)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(y, A, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(y, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, A, (, null, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(}, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(B, classOrMixinDeclaration)
+        listener: handleNoTypeVariables(extends)
+        listener: beginClassDeclaration(class, null, null, null, B)
+        parseClass(B, class, class, B)
+          parseClassHeaderOpt(B, class, class)
+            parseClassExtendsOpt(B)
+              parseClassExtendsSeenExtendsClause(extends, B)
+                listener: handleIdentifier(A, typeReference)
+                listener: handleNoTypeArguments({)
+                listener: handleType(A, null)
+                listener: handleClassExtends(extends, 1)
+            parseClassWithClauseOpt(A)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(A)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, B)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, B)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, B)
+              parseMetadataStar({)
+                listener: beginMetadataStar(B)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod({, null, null, null, null, null, null, {, Instance of 'NoType', null, B, DeclarationKind.Class, B, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, B)
+                listener: handleNoType({)
+                ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
+                  listener: handleIdentifier(B, methodDeclaration)
+                parseQualifiedRestOpt(B, methodDeclarationContinuation)
+                parseMethodTypeVar(B)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(B, B, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(B, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  parseInitializers(:)
+                    listener: beginInitializers(:)
+                    parseInitializer(:)
+                      listener: beginInitializer(assert)
+                      parseAssert(:, Assert.Initializer)
+                        listener: beginAssert(assert, Assert.Initializer)
+                        parseExpression(()
+                          parsePrecedenceExpression((, 1, true)
+                            parseUnaryExpression((, true)
+                              parsePrimary((, expression)
+                                parseSendOrFunctionLiteral((, expression)
+                                  parseSend((, expression)
+                                    isNextIdentifier(()
+                                    ensureIdentifier((, expression)
+                                      listener: handleIdentifier(x, expression)
+                                    listener: handleNoTypeArguments(>)
+                                    parseArgumentsOpt(x)
+                                      listener: handleNoArguments(>)
+                                    listener: handleSend(x, >)
+                            listener: beginBinaryExpression(>)
+                            parsePrecedenceExpression(>, 9, true)
+                              parseUnaryExpression(>, true)
+                                parsePrimary(>, expression)
+                                  parseLiteralInt(>)
+                                    listener: handleLiteralInt(0)
+                            listener: endBinaryExpression(>)
+                        listener: endAssert(assert, Assert.Initializer, (, null, ,)
+                      listener: endInitializer(,)
+                    parseInitializer(,)
+                      listener: beginInitializer(super)
+                      parseSuperInitializerExpression(,)
+                        parseInitializerExpressionRest(,)
+                          parseExpression(,)
+                            parsePrecedenceExpression(,, 1, true)
+                              parseUnaryExpression(,, true)
+                                parsePrimary(,, expression)
+                                  parseSuperExpression(,, expression)
+                                    listener: handleSuperExpression(super, expression)
+                                    listener: handleNoTypeArguments(()
+                                    parseArguments(super)
+                                      parseArgumentsRest(()
+                                        listener: beginArguments(()
+                                        parseExpression(()
+                                          parsePrecedenceExpression((, 1, true)
+                                            parseUnaryExpression((, true)
+                                              parsePrimary((, expression)
+                                                parseSendOrFunctionLiteral((, expression)
+                                                  parseSend((, expression)
+                                                    isNextIdentifier(()
+                                                    ensureIdentifier((, expression)
+                                                      listener: handleIdentifier(x, expression)
+                                                    listener: handleNoTypeArguments())
+                                                    parseArgumentsOpt(x)
+                                                      listener: handleNoArguments())
+                                                    listener: handleSend(x, ))
+                                        listener: endArguments(1, (, ))
+                                    listener: handleSend(super, ;)
+                          listener: endInitializer(;)
+                    listener: endInitializers(2, :, ;)
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, B, (, :, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(}, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(B2, classOrMixinDeclaration)
+        listener: handleNoTypeVariables(extends)
+        listener: beginClassDeclaration(class, null, null, null, B2)
+        parseClass(B2, class, class, B2)
+          parseClassHeaderOpt(B2, class, class)
+            parseClassExtendsOpt(B2)
+              parseClassExtendsSeenExtendsClause(extends, B2)
+                listener: handleIdentifier(A, typeReference)
+                listener: handleNoTypeArguments({)
+                listener: handleType(A, null)
+                listener: handleClassExtends(extends, 1)
+            parseClassWithClauseOpt(A)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(A)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, B2)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, B2)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, B2)
+              parseMetadataStar({)
+                listener: beginMetadataStar(B2)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod({, null, null, null, null, null, null, {, Instance of 'NoType', null, B2, DeclarationKind.Class, B2, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, B2)
+                listener: handleNoType({)
+                ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
+                  listener: handleIdentifier(B2, methodDeclaration)
+                parseQualifiedRestOpt(B2, methodDeclarationContinuation)
+                parseMethodTypeVar(B2)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(B2, B2, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(B2, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  parseInitializers(:)
+                    listener: beginInitializers(:)
+                    parseInitializer(:)
+                      listener: beginInitializer(assert)
+                      parseAssert(:, Assert.Initializer)
+                        listener: beginAssert(assert, Assert.Initializer)
+                        parseExpression(()
+                          parsePrecedenceExpression((, 1, true)
+                            parseUnaryExpression((, true)
+                              parsePrimary((, expression)
+                                parseSendOrFunctionLiteral((, expression)
+                                  parseSend((, expression)
+                                    isNextIdentifier(()
+                                    ensureIdentifier((, expression)
+                                      listener: handleIdentifier(x, expression)
+                                    listener: handleNoTypeArguments(>)
+                                    parseArgumentsOpt(x)
+                                      listener: handleNoArguments(>)
+                                    listener: handleSend(x, >)
+                            listener: beginBinaryExpression(>)
+                            parsePrecedenceExpression(>, 9, true)
+                              parseUnaryExpression(>, true)
+                                parsePrimary(>, expression)
+                                  parseLiteralInt(>)
+                                    listener: handleLiteralInt(0)
+                            listener: endBinaryExpression(>)
+                        listener: endAssert(assert, Assert.Initializer, (, null, ,)
+                      listener: endInitializer(,)
+                    parseInitializer(,)
+                      listener: beginInitializer(super)
+                      parseSuperInitializerExpression(,)
+                        parseInitializerExpressionRest(,)
+                          parseExpression(,)
+                            parsePrecedenceExpression(,, 1, true)
+                              parseUnaryExpression(,, true)
+                                parsePrimary(,, expression)
+                                  parseSuperExpression(,, expression)
+                                    listener: handleSuperExpression(super, expression)
+                              parsePrimary(., expressionContinuation)
+                                parseSendOrFunctionLiteral(., expressionContinuation)
+                                  parseSend(., expressionContinuation)
+                                    isNextIdentifier(.)
+                                    ensureIdentifier(., expressionContinuation)
+                                      listener: handleIdentifier(y, expressionContinuation)
+                                    listener: handleNoTypeArguments(()
+                                    parseArgumentsOpt(y)
+                                      parseArguments(y)
+                                        parseArgumentsRest(()
+                                          listener: beginArguments(()
+                                          parseExpression(()
+                                            parsePrecedenceExpression((, 1, true)
+                                              parseUnaryExpression((, true)
+                                                parsePrimary((, expression)
+                                                  parseSendOrFunctionLiteral((, expression)
+                                                    parseSend((, expression)
+                                                      isNextIdentifier(()
+                                                      ensureIdentifier((, expression)
+                                                        listener: handleIdentifier(x, expression)
+                                                      listener: handleNoTypeArguments())
+                                                      parseArgumentsOpt(x)
+                                                        listener: handleNoArguments())
+                                                      listener: handleSend(x, ))
+                                          listener: endArguments(1, (, ))
+                                    listener: handleSend(y, ;)
+                              listener: handleEndingBinaryExpression(.)
+                          listener: endInitializer(;)
+                    listener: endInitializers(2, :, ;)
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, B2, (, :, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(}, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(B3, classOrMixinDeclaration)
+        listener: handleNoTypeVariables(extends)
+        listener: beginClassDeclaration(class, null, null, null, B3)
+        parseClass(B3, class, class, B3)
+          parseClassHeaderOpt(B3, class, class)
+            parseClassExtendsOpt(B3)
+              parseClassExtendsSeenExtendsClause(extends, B3)
+                listener: handleIdentifier(A, typeReference)
+                listener: handleNoTypeArguments({)
+                listener: handleType(A, null)
+                listener: handleClassExtends(extends, 1)
+            parseClassWithClauseOpt(A)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(A)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, B3)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, B3)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, B3)
+              parseMetadataStar({)
+                listener: beginMetadataStar(B3)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod({, null, null, null, null, null, null, {, Instance of 'NoType', null, B3, DeclarationKind.Class, B3, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, B3)
+                listener: handleNoType({)
+                ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
+                  listener: handleIdentifier(B3, methodDeclaration)
+                parseQualifiedRestOpt(B3, methodDeclarationContinuation)
+                parseMethodTypeVar(B3)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(B3, B3, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(B3, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  parseInitializers(:)
+                    listener: beginInitializers(:)
+                    parseInitializer(:)
+                      listener: beginInitializer(assert)
+                      parseAssert(:, Assert.Initializer)
+                        listener: beginAssert(assert, Assert.Initializer)
+                        parseExpression(()
+                          parsePrecedenceExpression((, 1, true)
+                            parseUnaryExpression((, true)
+                              parsePrimary((, expression)
+                                parseSendOrFunctionLiteral((, expression)
+                                  parseSend((, expression)
+                                    isNextIdentifier(()
+                                    ensureIdentifier((, expression)
+                                      listener: handleIdentifier(x, expression)
+                                    listener: handleNoTypeArguments(>)
+                                    parseArgumentsOpt(x)
+                                      listener: handleNoArguments(>)
+                                    listener: handleSend(x, >)
+                            listener: beginBinaryExpression(>)
+                            parsePrecedenceExpression(>, 9, true)
+                              parseUnaryExpression(>, true)
+                                parsePrimary(>, expression)
+                                  parseLiteralInt(>)
+                                    listener: handleLiteralInt(0)
+                            listener: endBinaryExpression(>)
+                        listener: endAssert(assert, Assert.Initializer, (, null, ,)
+                      listener: endInitializer(,)
+                    parseInitializer(,)
+                      listener: beginInitializer(this)
+                      parseInitializerExpressionRest(,)
+                        parseExpression(,)
+                          parsePrecedenceExpression(,, 1, true)
+                            parseUnaryExpression(,, true)
+                              parsePrimary(,, expression)
+                                parseThisExpression(,, expression)
+                                  listener: handleThisExpression(this, expression)
+                            parsePrimary(., expressionContinuation)
+                              parseSendOrFunctionLiteral(., expressionContinuation)
+                                parseSend(., expressionContinuation)
+                                  isNextIdentifier(.)
+                                  ensureIdentifier(., expressionContinuation)
+                                    listener: handleIdentifier(y, expressionContinuation)
+                                  listener: handleNoTypeArguments(()
+                                  parseArgumentsOpt(y)
+                                    parseArguments(y)
+                                      parseArgumentsRest(()
+                                        listener: beginArguments(()
+                                        parseExpression(()
+                                          parsePrecedenceExpression((, 1, true)
+                                            parseUnaryExpression((, true)
+                                              parsePrimary((, expression)
+                                                parseSendOrFunctionLiteral((, expression)
+                                                  parseSend((, expression)
+                                                    isNextIdentifier(()
+                                                    ensureIdentifier((, expression)
+                                                      listener: handleIdentifier(x, expression)
+                                                    listener: handleNoTypeArguments())
+                                                    parseArgumentsOpt(x)
+                                                      listener: handleNoArguments())
+                                                    listener: handleSend(x, ))
+                                        listener: endArguments(1, (, ))
+                                  listener: handleSend(y, ;)
+                            listener: handleEndingBinaryExpression(.)
+                        listener: endInitializer(;)
+                    listener: endInitializers(2, :, ;)
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, B3, (, :, ;)
+              listener: endMember()
+            notEofOrValue(}, B3)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, B3)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(B3)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(.)
+              parseMethod(;, null, null, null, null, null, null, ;, Instance of 'NoType', null, B3, DeclarationKind.Class, B3, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, B3)
+                listener: handleNoType(;)
+                ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
+                  listener: handleIdentifier(B3, methodDeclaration)
+                parseQualifiedRestOpt(B3, methodDeclarationContinuation)
+                  parseQualifiedRest(B3, methodDeclarationContinuation)
+                    ensureIdentifier(., methodDeclarationContinuation)
+                      listener: handleIdentifier(y, methodDeclarationContinuation)
+                    listener: handleQualified(.)
+                parseMethodTypeVar(y)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(y, B3, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(y, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  listener: handleNoInitializers()
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, B3, (, null, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(}, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(C, classOrMixinDeclaration)
+        listener: handleNoTypeVariables(extends)
+        listener: beginClassDeclaration(class, null, null, null, C)
+        parseClass(C, class, class, C)
+          parseClassHeaderOpt(C, class, class)
+            parseClassExtendsOpt(C)
+              parseClassExtendsSeenExtendsClause(extends, C)
+                listener: handleIdentifier(A, typeReference)
+                listener: handleNoTypeArguments({)
+                listener: handleType(A, null)
+                listener: handleClassExtends(extends, 1)
+            parseClassWithClauseOpt(A)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(A)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, C)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, int)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, C)
+              parseMetadataStar({)
+                listener: beginMetadataStar(int)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', y, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(y)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(y, fieldDeclaration)
+                parseFieldInitializerOpt(y, y, null, null, null, null, DeclarationKind.Class, C)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+              listener: endMember()
+            notEofOrValue(}, C)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(C)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod(;, null, null, null, null, null, null, ;, Instance of 'NoType', null, C, DeclarationKind.Class, C, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, C)
+                listener: handleNoType(;)
+                ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
+                  listener: handleIdentifier(C, methodDeclaration)
+                parseQualifiedRestOpt(C, methodDeclarationContinuation)
+                parseMethodTypeVar(C)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(C, C, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(C, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  parseInitializers(:)
+                    listener: beginInitializers(:)
+                    parseInitializer(:)
+                      listener: beginInitializer(assert)
+                      parseAssert(:, Assert.Initializer)
+                        listener: beginAssert(assert, Assert.Initializer)
+                        parseExpression(()
+                          parsePrecedenceExpression((, 1, true)
+                            parseUnaryExpression((, true)
+                              parsePrimary((, expression)
+                                parseSendOrFunctionLiteral((, expression)
+                                  parseSend((, expression)
+                                    isNextIdentifier(()
+                                    ensureIdentifier((, expression)
+                                      listener: handleIdentifier(x, expression)
+                                    listener: handleNoTypeArguments(>)
+                                    parseArgumentsOpt(x)
+                                      listener: handleNoArguments(>)
+                                    listener: handleSend(x, >)
+                            listener: beginBinaryExpression(>)
+                            parsePrecedenceExpression(>, 9, true)
+                              parseUnaryExpression(>, true)
+                                parsePrimary(>, expression)
+                                  parseLiteralInt(>)
+                                    listener: handleLiteralInt(0)
+                            listener: endBinaryExpression(>)
+                        listener: endAssert(assert, Assert.Initializer, (, null, ,)
+                      listener: endInitializer(,)
+                    parseInitializer(,)
+                      listener: beginInitializer(y)
+                      parseInitializerExpressionRest(,)
+                        parseExpression(,)
+                          parsePrecedenceExpression(,, 1, true)
+                            parseUnaryExpression(,, true)
+                              parsePrimary(,, expression)
+                                parseSendOrFunctionLiteral(,, expression)
+                                  parseSend(,, expression)
+                                    isNextIdentifier(,)
+                                    ensureIdentifier(,, expression)
+                                      listener: handleIdentifier(y, expression)
+                                    listener: handleNoTypeArguments(=)
+                                    parseArgumentsOpt(y)
+                                      listener: handleNoArguments(=)
+                                    listener: handleSend(y, =)
+                            parsePrecedenceExpression(=, 1, true)
+                              parseUnaryExpression(=, true)
+                                parsePrimary(=, expression)
+                                  parseLiteralInt(=)
+                                    listener: handleLiteralInt(2)
+                              listener: beginBinaryExpression(*)
+                              parsePrecedenceExpression(*, 15, true)
+                                parseUnaryExpression(*, true)
+                                  parsePrimary(*, expression)
+                                    parseLiteralInt(*)
+                                      listener: handleLiteralInt(21)
+                              listener: endBinaryExpression(*)
+                            listener: handleAssignmentExpression(=)
+                        listener: endInitializer(;)
+                    listener: endInitializers(2, :, ;)
+                parseAsyncModifierOpt(21)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(21, false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, C, (, :, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(}, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(D, classOrMixinDeclaration)
+        listener: handleNoTypeVariables(extends)
+        listener: beginClassDeclaration(class, null, null, null, D)
+        parseClass(D, class, class, D)
+          parseClassHeaderOpt(D, class, class)
+            parseClassExtendsOpt(D)
+              parseClassExtendsSeenExtendsClause(extends, D)
+                listener: handleIdentifier(A, typeReference)
+                listener: handleNoTypeArguments({)
+                listener: handleType(A, null)
+                listener: handleClassExtends(extends, 1)
+            parseClassWithClauseOpt(A)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(A)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, D)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, D)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, D)
+              parseMetadataStar({)
+                listener: beginMetadataStar(D)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod({, null, null, null, null, null, null, {, Instance of 'NoType', null, D, DeclarationKind.Class, D, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, D)
+                listener: handleNoType({)
+                ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
+                  listener: handleIdentifier(D, methodDeclaration)
+                parseQualifiedRestOpt(D, methodDeclarationContinuation)
+                parseMethodTypeVar(D)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(D, D, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(D, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  parseInitializers(:)
+                    listener: beginInitializers(:)
+                    parseInitializer(:)
+                      listener: beginInitializer(assert)
+                      parseAssert(:, Assert.Initializer)
+                        listener: beginAssert(assert, Assert.Initializer)
+                        parseExpression(()
+                          parsePrecedenceExpression((, 1, true)
+                            parseUnaryExpression((, true)
+                              parsePrimary((, expression)
+                                parseSendOrFunctionLiteral((, expression)
+                                  parseSend((, expression)
+                                    isNextIdentifier(()
+                                    ensureIdentifier((, expression)
+                                      listener: handleIdentifier(x, expression)
+                                    listener: handleNoTypeArguments(>)
+                                    parseArgumentsOpt(x)
+                                      listener: handleNoArguments(>)
+                                    listener: handleSend(x, >)
+                            listener: beginBinaryExpression(>)
+                            parsePrecedenceExpression(>, 9, true)
+                              parseUnaryExpression(>, true)
+                                parsePrimary(>, expression)
+                                  parseLiteralInt(>)
+                                    listener: handleLiteralInt(0)
+                            listener: endBinaryExpression(>)
+                        listener: endAssert(assert, Assert.Initializer, (, null, ,)
+                      listener: endInitializer(,)
+                    parseInitializer(,)
+                      listener: beginInitializer(assert)
+                      parseAssert(,, Assert.Initializer)
+                        listener: beginAssert(assert, Assert.Initializer)
+                        parseExpression(()
+                          parsePrecedenceExpression((, 1, true)
+                            parseUnaryExpression((, true)
+                              parsePrimary((, expression)
+                                parseSendOrFunctionLiteral((, expression)
+                                  parseSend((, expression)
+                                    isNextIdentifier(()
+                                    ensureIdentifier((, expression)
+                                      listener: handleIdentifier(x, expression)
+                                    listener: handleNoTypeArguments(-)
+                                    parseArgumentsOpt(x)
+                                      listener: handleNoArguments(-)
+                                    listener: handleSend(x, -)
+                            listener: beginBinaryExpression(-)
+                            parsePrecedenceExpression(-, 14, true)
+                              parseUnaryExpression(-, true)
+                                parsePrimary(-, expression)
+                                  parseLiteralInt(-)
+                                    listener: handleLiteralInt(1)
+                            listener: endBinaryExpression(-)
+                            listener: beginBinaryExpression(>)
+                            parsePrecedenceExpression(>, 9, true)
+                              parseUnaryExpression(>, true)
+                                parsePrimary(>, expression)
+                                  parseLiteralInt(>)
+                                    listener: handleLiteralInt(0)
+                            listener: endBinaryExpression(>)
+                        listener: endAssert(assert, Assert.Initializer, (, null, ;)
+                      listener: endInitializer(;)
+                    listener: endInitializers(2, :, ;)
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(), false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, D, (, :, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(}, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(E, classOrMixinDeclaration)
+        listener: handleNoTypeVariables(extends)
+        listener: beginClassDeclaration(class, null, null, null, E)
+        parseClass(E, class, class, E)
+          parseClassHeaderOpt(E, class, class)
+            parseClassExtendsOpt(E)
+              parseClassExtendsSeenExtendsClause(extends, E)
+                listener: handleIdentifier(A, typeReference)
+                listener: handleNoTypeArguments({)
+                listener: handleType(A, null)
+                listener: handleClassExtends(extends, 1)
+            parseClassWithClauseOpt(A)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(A)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(A, DeclarationKind.Class, E)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, final)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, E)
+              parseMetadataStar({)
+                listener: beginMetadataStar(final)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields({, null, null, null, null, null, final, final, Instance of 'SimpleType', y, DeclarationKind.Class, E, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(y)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(y, fieldDeclaration)
+                parseFieldInitializerOpt(y, y, null, null, null, final, DeclarationKind.Class, E)
+                  listener: handleNoFieldInitializer(;)
+                listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+              listener: endMember()
+            notEofOrValue(}, E)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, E)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(E)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod(;, null, null, null, null, null, null, ;, Instance of 'NoType', null, E, DeclarationKind.Class, E, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, E)
+                listener: handleNoType(;)
+                ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
+                  listener: handleIdentifier(E, methodDeclaration)
+                parseQualifiedRestOpt(E, methodDeclarationContinuation)
+                parseMethodTypeVar(E)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(E, E, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(E, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        parseMetadataStar(()
+                          listener: beginMetadataStar(int)
+                          listener: endMetadataStar(0)
+                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                        listener: handleIdentifier(int, typeReference)
+                        listener: handleNoTypeArguments(x)
+                        listener: handleType(int, null)
+                        ensureIdentifier(int, formalParameterDeclaration)
+                          listener: handleIdentifier(x, formalParameterDeclaration)
+                        listener: handleFormalParameterWithoutValue())
+                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  parseInitializers(:)
+                    listener: beginInitializers(:)
+                    parseInitializer(:)
+                      listener: beginInitializer(assert)
+                      parseAssert(:, Assert.Initializer)
+                        listener: beginAssert(assert, Assert.Initializer)
+                        parseExpression(()
+                          parsePrecedenceExpression((, 1, true)
+                            parseUnaryExpression((, true)
+                              parsePrimary((, expression)
+                                parseSendOrFunctionLiteral((, expression)
+                                  parseSend((, expression)
+                                    isNextIdentifier(()
+                                    ensureIdentifier((, expression)
+                                      listener: handleIdentifier(x, expression)
+                                    listener: handleNoTypeArguments(>)
+                                    parseArgumentsOpt(x)
+                                      listener: handleNoArguments(>)
+                                    listener: handleSend(x, >)
+                            listener: beginBinaryExpression(>)
+                            parsePrecedenceExpression(>, 9, true)
+                              parseUnaryExpression(>, true)
+                                parsePrimary(>, expression)
+                                  parseLiteralInt(>)
+                                    listener: handleLiteralInt(0)
+                            listener: endBinaryExpression(>)
+                        listener: endAssert(assert, Assert.Initializer, (, null, ,)
+                      listener: endInitializer(,)
+                    parseInitializer(,)
+                      listener: beginInitializer(this)
+                      parseInitializerExpressionRest(,)
+                        parseExpression(,)
+                          parsePrecedenceExpression(,, 1, true)
+                            parseUnaryExpression(,, true)
+                              parsePrimary(,, expression)
+                                parseThisExpression(,, expression)
+                                  listener: handleThisExpression(this, expression)
+                            parsePrimary(., expressionContinuation)
+                              parseSendOrFunctionLiteral(., expressionContinuation)
+                                parseSend(., expressionContinuation)
+                                  isNextIdentifier(.)
+                                  ensureIdentifier(., expressionContinuation)
+                                    listener: handleIdentifier(y, expressionContinuation)
+                                  listener: handleNoTypeArguments(=)
+                                  parseArgumentsOpt(y)
+                                    listener: handleNoArguments(=)
+                                  listener: handleSend(y, =)
+                            listener: handleEndingBinaryExpression(.)
+                            parsePrecedenceExpression(=, 1, true)
+                              parseUnaryExpression(=, true)
+                                parsePrimary(=, expression)
+                                  parseSendOrFunctionLiteral(=, expression)
+                                    parseSend(=, expression)
+                                      isNextIdentifier(=)
+                                      ensureIdentifier(=, expression)
+                                        listener: handleIdentifier(x, expression)
+                                      listener: handleNoTypeArguments(*)
+                                      parseArgumentsOpt(x)
+                                        listener: handleNoArguments(*)
+                                      listener: handleSend(x, *)
+                              listener: beginBinaryExpression(*)
+                              parsePrecedenceExpression(*, 15, true)
+                                parseUnaryExpression(*, true)
+                                  parsePrimary(*, expression)
+                                    parseLiteralInt(*)
+                                      listener: handleLiteralInt(2)
+                              listener: endBinaryExpression(*)
+                            listener: handleAssignmentExpression(=)
+                        listener: endInitializer(;)
+                    listener: endInitializers(2, :, ;)
+                parseAsyncModifierOpt(2)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(2, false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, E, (, :, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration()
+  reportAllErrorTokens(class)
+  listener: endCompilationUnit(7, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.parser.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.parser.expect
new file mode 100644
index 0000000..a88951b
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.parser.expect
@@ -0,0 +1,65 @@
+class A {
+A(int x);
+A.y(int x);
+}
+
+class B extends A {
+B(int x) : assert(x > 0), super(x);
+}
+
+class B2 extends A {
+B2(int x) : assert(x > 0), super.y(x);
+}
+
+class B3 extends A {
+B3(int x) : assert(x > 0), this.y(x);
+B3.y(int x);
+}
+
+class C extends A {
+int y;
+C(int x) : assert(x > 0), y = 2*21;
+}
+
+class D extends A {
+D(int x) : assert(x > 0), assert(x - 1 > 0);
+}
+
+class E extends A {
+final int y;
+E(int x) : assert(x > 0), this.y = x*2;
+}
+
+
+class[KeywordToken] A[StringToken] {[BeginToken]
+A[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken];[SimpleToken]
+A[StringToken].[SimpleToken]y[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] B[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+B[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken],[SimpleToken] super[KeywordToken]([BeginToken]x[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] B2[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+B2[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken],[SimpleToken] super[KeywordToken].[SimpleToken]y[StringToken]([BeginToken]x[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] B3[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+B3[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken],[SimpleToken] this[KeywordToken].[SimpleToken]y[StringToken]([BeginToken]x[StringToken])[SimpleToken];[SimpleToken]
+B3[StringToken].[SimpleToken]y[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] C[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+int[StringToken] y[StringToken];[SimpleToken]
+C[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken],[SimpleToken] y[StringToken] =[SimpleToken] 2[StringToken]*[SimpleToken]21[StringToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] D[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+D[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken],[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] E[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+final[KeywordToken] int[StringToken] y[StringToken];[SimpleToken]
+E[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken],[SimpleToken] this[KeywordToken].[SimpleToken]y[StringToken] =[SimpleToken] x[StringToken]*[SimpleToken]2[StringToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.scanner.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.scanner.expect
new file mode 100644
index 0000000..a88951b
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.scanner.expect
@@ -0,0 +1,65 @@
+class A {
+A(int x);
+A.y(int x);
+}
+
+class B extends A {
+B(int x) : assert(x > 0), super(x);
+}
+
+class B2 extends A {
+B2(int x) : assert(x > 0), super.y(x);
+}
+
+class B3 extends A {
+B3(int x) : assert(x > 0), this.y(x);
+B3.y(int x);
+}
+
+class C extends A {
+int y;
+C(int x) : assert(x > 0), y = 2*21;
+}
+
+class D extends A {
+D(int x) : assert(x > 0), assert(x - 1 > 0);
+}
+
+class E extends A {
+final int y;
+E(int x) : assert(x > 0), this.y = x*2;
+}
+
+
+class[KeywordToken] A[StringToken] {[BeginToken]
+A[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken];[SimpleToken]
+A[StringToken].[SimpleToken]y[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] B[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+B[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken],[SimpleToken] super[KeywordToken]([BeginToken]x[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] B2[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+B2[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken],[SimpleToken] super[KeywordToken].[SimpleToken]y[StringToken]([BeginToken]x[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] B3[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+B3[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken],[SimpleToken] this[KeywordToken].[SimpleToken]y[StringToken]([BeginToken]x[StringToken])[SimpleToken];[SimpleToken]
+B3[StringToken].[SimpleToken]y[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] C[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+int[StringToken] y[StringToken];[SimpleToken]
+C[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken],[SimpleToken] y[StringToken] =[SimpleToken] 2[StringToken]*[SimpleToken]21[StringToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] D[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+D[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken],[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] -[SimpleToken] 1[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] E[StringToken] extends[KeywordToken] A[StringToken] {[BeginToken]
+final[KeywordToken] int[StringToken] y[StringToken];[SimpleToken]
+E[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] :[SimpleToken] assert[KeywordToken]([BeginToken]x[StringToken] >[SimpleToken] 0[StringToken])[SimpleToken],[SimpleToken] this[KeywordToken].[SimpleToken]y[StringToken] =[SimpleToken] x[StringToken]*[SimpleToken]2[StringToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart
new file mode 100644
index 0000000..586fb09
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart
@@ -0,0 +1,17 @@
+// From https://dart-review.googlesource.com/c/sdk/+/113126
+
+class C {
+  C() : assert = 0;
+}
+
+class C {
+  C() : null = 0;
+}
+
+class C {
+  C() : super = 0;
+}
+
+class C {
+  C() : this = 0;
+}
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.expect
new file mode 100644
index 0000000..7204054
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.expect
@@ -0,0 +1,293 @@
+Problems reported:
+
+parser/error_recovery/issue_48411_prime_1:4:16: Expected '(' before this.
+  C() : assert = 0;
+               ^
+
+parser/error_recovery/issue_48411_prime_1:4:16: Only factory constructor can specify '=' redirection.
+  C() : assert = 0;
+               ^
+
+parser/error_recovery/issue_48411_prime_1:4:18: Expected an identifier, but got '0'.
+  C() : assert = 0;
+                 ^
+
+parser/error_recovery/issue_48411_prime_1:4:16: Expected ';' after this.
+  C() : assert = 0;
+               ^
+
+parser/error_recovery/issue_48411_prime_1:4:18: Expected a class member, but got '0'.
+  C() : assert = 0;
+                 ^
+
+parser/error_recovery/issue_48411_prime_1:4:19: Expected a class member, but got ';'.
+  C() : assert = 0;
+                  ^
+
+parser/error_recovery/issue_48411_prime_1:8:7: Expected an initializer.
+  C() : null = 0;
+      ^
+
+parser/error_recovery/issue_48411_prime_1:8:9: Expected a function body, but got 'null'.
+  C() : null = 0;
+        ^^^^
+
+parser/error_recovery/issue_48411_prime_1:8:9: Expected a class member, but got 'null'.
+  C() : null = 0;
+        ^^^^
+
+parser/error_recovery/issue_48411_prime_1:8:14: Operator declarations must be preceded by the keyword 'operator'.
+  C() : null = 0;
+             ^
+
+parser/error_recovery/issue_48411_prime_1:8:14: The string '=' isn't a user-definable operator.
+  C() : null = 0;
+             ^
+
+parser/error_recovery/issue_48411_prime_1:8:14: A method declaration needs an explicit list of parameters.
+  C() : null = 0;
+             ^
+
+parser/error_recovery/issue_48411_prime_1:8:16: Expected a function body, but got '0'.
+  C() : null = 0;
+               ^
+
+parser/error_recovery/issue_48411_prime_1:8:16: Expected a class member, but got '0'.
+  C() : null = 0;
+               ^
+
+parser/error_recovery/issue_48411_prime_1:8:17: Expected a class member, but got ';'.
+  C() : null = 0;
+                ^
+
+parser/error_recovery/issue_48411_prime_1:16:14: Expected '.' before this.
+  C() : this = 0;
+             ^
+
+parser/error_recovery/issue_48411_prime_1:16:9: Expected an assignment after the field name.
+  C() : this = 0;
+        ^^^^
+
+beginCompilationUnit(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(C, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(class, null, null, null, C)
+      handleNoType(C)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(C)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, C)
+            handleNoType({)
+            handleIdentifier(C, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(assert)
+                beginAssert(assert, Assert.Initializer)
+                  handleRecoverableError(Message[ExpectedButGot, Expected '(' before this., null, {string: (}], =, =)
+                  handleIdentifier(, expression)
+                  handleNoTypeArguments())
+                  handleNoArguments())
+                  handleSend(, ))
+                endAssert(assert, Assert.Initializer, (, null, =)
+              endInitializer(=)
+            endInitializers(1, :, =)
+            handleAsyncModifier(null, null)
+            handleRecoverableError(RedirectionInNonFactory, =, =)
+            beginRedirectingFactoryBody(=)
+              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '0'., Try inserting an identifier before '0'., {lexeme: 0}], 0, 0)
+              handleIdentifier(, constructorReference)
+              beginConstructorReference()
+                handleNoTypeArguments(0)
+                handleNoConstructorReferenceContinuationAfterTypeArguments(0)
+              endConstructorReference(, null, 0, ConstructorReferenceContext.RedirectingFactory)
+              handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], =, =)
+            endRedirectingFactoryBody(=, ;)
+          endClassConstructor(null, C, (, :, ;)
+        endMember()
+        beginMetadataStar(0)
+        endMetadataStar(0)
+        beginMember()
+          handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '0'., null, {lexeme: 0}], 0, 0)
+          handleInvalidMember(0)
+        endMember()
+        beginMetadataStar(;)
+        endMetadataStar(0)
+        beginMember()
+          handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {lexeme: ;}], ;, ;)
+          handleInvalidMember(;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 3, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(C, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(class, null, null, null, C)
+      handleNoType(C)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(C)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, C)
+            handleNoType({)
+            handleIdentifier(C, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(null)
+                handleRecoverableError(ExpectedAnInitializer, :, :)
+                handleIdentifier(, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(, =)
+                handleIdentifier(, expression)
+                handleNoTypeArguments(null)
+                handleNoArguments(null)
+                handleSend(, null)
+                handleAssignmentExpression(=)
+              endInitializer(null)
+            endInitializers(1, :, null)
+            handleAsyncModifier(null, null)
+            handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got 'null'., null, {lexeme: null}], null, null)
+            handleInvalidFunctionBody({)
+          endClassConstructor(null, C, (, :, })
+        endMember()
+        beginMetadataStar(null)
+        endMetadataStar(0)
+        beginMember()
+          handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'null'., null, {lexeme: null}], null, null)
+          handleInvalidMember(null)
+        endMember()
+        beginMetadataStar(=)
+        endMetadataStar(0)
+        beginMember()
+          handleRecoverableError(MissingOperatorKeyword, =, =)
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, operator)
+            handleNoType(null)
+            handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {lexeme: =}], =, =)
+            handleInvalidOperatorName(operator, =)
+            handleNoTypeVariables(0)
+            handleRecoverableError(MissingMethodParameters, =, =)
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            handleNoInitializers()
+            handleAsyncModifier(null, null)
+            handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '0'., null, {lexeme: 0}], 0, 0)
+            handleInvalidFunctionBody({)
+          endClassMethod(null, operator, (, null, })
+        endMember()
+        beginMetadataStar(0)
+        endMetadataStar(0)
+        beginMember()
+          handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '0'., null, {lexeme: 0}], 0, 0)
+          handleInvalidMember(0)
+        endMember()
+        beginMetadataStar(;)
+        endMetadataStar(0)
+        beginMember()
+          handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {lexeme: ;}], ;, ;)
+          handleInvalidMember(;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 5, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(C, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(class, null, null, null, C)
+      handleNoType(C)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(C)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, C)
+            handleNoType({)
+            handleIdentifier(C, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(super)
+                handleSuperExpression(super, expression)
+                handleLiteralInt(0)
+                handleAssignmentExpression(=)
+              endInitializer(;)
+            endInitializers(1, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, C, (, :, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+    handleIdentifier(C, classOrMixinDeclaration)
+    handleNoTypeVariables({)
+    beginClassDeclaration(class, null, null, null, C)
+      handleNoType(C)
+      handleClassExtends(null, 1)
+      handleClassNoWithClause()
+      handleImplements(null, 0)
+      handleClassHeader(class, class, null)
+      beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+        beginMetadataStar(C)
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, C)
+            handleNoType({)
+            handleIdentifier(C, methodDeclaration)
+            handleNoTypeVariables(()
+            beginFormalParameters((, MemberKind.NonStaticMethod)
+            endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+            beginInitializers(:)
+              beginInitializer(this)
+                handleRecoverableError(Message[ExpectedButGot, Expected '.' before this., null, {string: .}], =, =)
+                handleRecoverableError(MissingAssignmentInInitializer, this, this)
+                handleIdentifier(, expression)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(, =)
+                handleThisExpression(this, expression)
+                handleIdentifier(, expressionContinuation)
+                handleNoTypeArguments(=)
+                handleNoArguments(=)
+                handleSend(, =)
+                handleEndingBinaryExpression(.)
+                handleLiteralInt(0)
+                handleAssignmentExpression(=)
+                handleAssignmentExpression(=)
+              endInitializer(;)
+            endInitializers(1, :, ;)
+            handleAsyncModifier(null, null)
+            handleEmptyFunctionBody(;)
+          endClassConstructor(null, C, (, :, ;)
+        endMember()
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
+    endClassDeclaration(class, })
+  endTopLevelDeclaration()
+endCompilationUnit(4, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.intertwined.expect
new file mode 100644
index 0000000..eb2c5841
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.intertwined.expect
@@ -0,0 +1,494 @@
+parseUnit(class)
+  skipErrorTokens(class)
+  listener: beginCompilationUnit(class)
+  syntheticPreviousToken(class)
+  parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+    parseMetadataStar()
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(C, classOrMixinDeclaration)
+        listener: handleNoTypeVariables({)
+        listener: beginClassDeclaration(class, null, null, null, C)
+        parseClass(C, class, class, C)
+          parseClassHeaderOpt(C, class, class)
+            parseClassExtendsOpt(C)
+              listener: handleNoType(C)
+              listener: handleClassExtends(null, 1)
+            parseClassWithClauseOpt(C)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(C)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(C, DeclarationKind.Class, C)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, C)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, C)
+              parseMetadataStar({)
+                listener: beginMetadataStar(C)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod({, null, null, null, null, null, null, {, Instance of 'NoType', null, C, DeclarationKind.Class, C, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, C)
+                listener: handleNoType({)
+                ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
+                  listener: handleIdentifier(C, methodDeclaration)
+                parseQualifiedRestOpt(C, methodDeclarationContinuation)
+                parseMethodTypeVar(C)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(C, C, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(C, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  parseInitializers(:)
+                    listener: beginInitializers(:)
+                    parseInitializer(:)
+                      listener: beginInitializer(assert)
+                      parseAssert(:, Assert.Initializer)
+                        listener: beginAssert(assert, Assert.Initializer)
+                        reportRecoverableError(=, Message[ExpectedButGot, Expected '(' before this., null, {string: (}])
+                          listener: handleRecoverableError(Message[ExpectedButGot, Expected '(' before this., null, {string: (}], =, =)
+                        rewriter()
+                        parseExpression(()
+                          parsePrecedenceExpression((, 1, true)
+                            parseUnaryExpression((, true)
+                              parsePrimary((, expression)
+                                parseSendOrFunctionLiteral((, expression)
+                                  parseSend((, expression)
+                                    isNextIdentifier(()
+                                    ensureIdentifier((, expression)
+                                      listener: handleIdentifier(, expression)
+                                    listener: handleNoTypeArguments())
+                                    parseArgumentsOpt()
+                                      listener: handleNoArguments())
+                                    listener: handleSend(, ))
+                        listener: endAssert(assert, Assert.Initializer, (, null, =)
+                      listener: endInitializer(=)
+                    listener: endInitializers(1, :, =)
+                parseAsyncModifierOpt())
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                reportRecoverableError(=, RedirectionInNonFactory)
+                  listener: handleRecoverableError(RedirectionInNonFactory, =, =)
+                parseRedirectingFactoryBody())
+                  listener: beginRedirectingFactoryBody(=)
+                  parseConstructorReference(=, ConstructorReferenceContext.RedirectingFactory, null, false)
+                    ensureIdentifier(=, constructorReference)
+                      insertSyntheticIdentifier(=, constructorReference, message: Message[ExpectedIdentifier, Expected an identifier, but got '0'., Try inserting an identifier before '0'., {lexeme: 0}], messageOnToken: null)
+                        reportRecoverableError(0, Message[ExpectedIdentifier, Expected an identifier, but got '0'., Try inserting an identifier before '0'., {lexeme: 0}])
+                          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '0'., Try inserting an identifier before '0'., {lexeme: 0}], 0, 0)
+                        rewriter()
+                      listener: handleIdentifier(, constructorReference)
+                    listener: beginConstructorReference()
+                    parseQualifiedRestOpt(, constructorReferenceContinuation)
+                    listener: handleNoTypeArguments(0)
+                    listener: handleNoConstructorReferenceContinuationAfterTypeArguments(0)
+                    listener: endConstructorReference(, null, 0, ConstructorReferenceContext.RedirectingFactory)
+                  ensureSemicolon()
+                    reportRecoverableError(=, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+                      listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], =, =)
+                    rewriter()
+                  listener: endRedirectingFactoryBody(=, ;)
+                listener: endClassConstructor(null, C, (, :, ;)
+              listener: endMember()
+            notEofOrValue(}, 0)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(0)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              recoverFromInvalidMember(;, ;, null, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, C)
+                reportRecoverableErrorWithToken(0, Instance of 'Template<(Token) => Message>')
+                  listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '0'., null, {lexeme: 0}], 0, 0)
+                listener: handleInvalidMember(0)
+                listener: endMember()
+            notEofOrValue(}, ;)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(0, DeclarationKind.Class, C)
+              parseMetadataStar(0)
+                listener: beginMetadataStar(;)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              recoverFromInvalidMember(0, 0, null, null, null, null, null, null, 0, Instance of 'NoType', null, DeclarationKind.Class, C)
+                reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+                  listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {lexeme: ;}], ;, ;)
+                listener: handleInvalidMember(;)
+                listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 3, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(}, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(C, classOrMixinDeclaration)
+        listener: handleNoTypeVariables({)
+        listener: beginClassDeclaration(class, null, null, null, C)
+        parseClass(C, class, class, C)
+          parseClassHeaderOpt(C, class, class)
+            parseClassExtendsOpt(C)
+              listener: handleNoType(C)
+              listener: handleClassExtends(null, 1)
+            parseClassWithClauseOpt(C)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(C)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(C, DeclarationKind.Class, C)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, C)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, C)
+              parseMetadataStar({)
+                listener: beginMetadataStar(C)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod({, null, null, null, null, null, null, {, Instance of 'NoType', null, C, DeclarationKind.Class, C, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, C)
+                listener: handleNoType({)
+                ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
+                  listener: handleIdentifier(C, methodDeclaration)
+                parseQualifiedRestOpt(C, methodDeclarationContinuation)
+                parseMethodTypeVar(C)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(C, C, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(C, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  parseInitializers(:)
+                    listener: beginInitializers(:)
+                    parseInitializer(:)
+                      listener: beginInitializer(null)
+                      insertSyntheticIdentifier(:, fieldInitializer, message: ExpectedAnInitializer, messageOnToken: :)
+                        reportRecoverableError(:, ExpectedAnInitializer)
+                          listener: handleRecoverableError(ExpectedAnInitializer, :, :)
+                        rewriter()
+                      rewriter()
+                      rewriter()
+                      parseInitializerExpressionRest(:)
+                        parseExpression(:)
+                          parsePrecedenceExpression(:, 1, true)
+                            parseUnaryExpression(:, true)
+                              parsePrimary(:, expression)
+                                parseSendOrFunctionLiteral(:, expression)
+                                  parseSend(:, expression)
+                                    isNextIdentifier(:)
+                                    ensureIdentifier(:, expression)
+                                      listener: handleIdentifier(, expression)
+                                    listener: handleNoTypeArguments(=)
+                                    parseArgumentsOpt()
+                                      listener: handleNoArguments(=)
+                                    listener: handleSend(, =)
+                            parsePrecedenceExpression(=, 1, true)
+                              parseUnaryExpression(=, true)
+                                parsePrimary(=, expression)
+                                  parseSendOrFunctionLiteral(=, expression)
+                                    parseSend(=, expression)
+                                      isNextIdentifier(=)
+                                      ensureIdentifier(=, expression)
+                                        listener: handleIdentifier(, expression)
+                                      listener: handleNoTypeArguments(null)
+                                      parseArgumentsOpt()
+                                        listener: handleNoArguments(null)
+                                      listener: handleSend(, null)
+                            listener: handleAssignmentExpression(=)
+                        listener: endInitializer(null)
+                    listener: endInitializers(1, :, null)
+                parseAsyncModifierOpt()
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(, false, true)
+                  ensureBlock(, Instance of 'Template<(Token) => Message>', null)
+                    reportRecoverableError(null, Message[ExpectedFunctionBody, Expected a function body, but got 'null'., null, {lexeme: null}])
+                      listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got 'null'., null, {lexeme: null}], null, null)
+                    insertBlock()
+                      rewriter()
+                      rewriter()
+                  listener: handleInvalidFunctionBody({)
+                listener: endClassConstructor(null, C, (, :, })
+              listener: endMember()
+            notEofOrValue(}, null)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, C)
+              parseMetadataStar(})
+                listener: beginMetadataStar(null)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              recoverFromInvalidMember(}, }, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, C)
+                reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
+                  listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'null'., null, {lexeme: null}], null, null)
+                listener: handleInvalidMember(null)
+                listener: endMember()
+            notEofOrValue(}, =)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(null, DeclarationKind.Class, C)
+              parseMetadataStar(null)
+                listener: beginMetadataStar(=)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              recoverFromInvalidMember(null, null, null, null, null, null, null, null, null, Instance of 'NoType', null, DeclarationKind.Class, C)
+                parseInvalidOperatorDeclaration(null, null, null, null, null, null, null, null, DeclarationKind.Class, C)
+                  reportRecoverableError(=, MissingOperatorKeyword)
+                    listener: handleRecoverableError(MissingOperatorKeyword, =, =)
+                  rewriter()
+                  parseMethod(null, null, null, null, null, null, null, null, Instance of 'NoType', null, operator, DeclarationKind.Class, C, false)
+                    listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, operator)
+                    listener: handleNoType(null)
+                    parseOperatorName(null)
+                      isUnaryMinus(=)
+                      reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
+                        listener: handleRecoverableError(Message[InvalidOperator, The string '=' isn't a user-definable operator., null, {lexeme: =}], =, =)
+                      listener: handleInvalidOperatorName(operator, =)
+                    parseMethodTypeVar(=)
+                      listener: handleNoTypeVariables(0)
+                    parseGetterOrFormalParameters(=, operator, false, MemberKind.NonStaticMethod)
+                      missingParameterMessage(MemberKind.NonStaticMethod)
+                      reportRecoverableError(=, MissingMethodParameters)
+                        listener: handleRecoverableError(MissingMethodParameters, =, =)
+                      rewriter()
+                      parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                        listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                        listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+                    parseInitializersOpt())
+                      listener: handleNoInitializers()
+                    parseAsyncModifierOpt())
+                      listener: handleAsyncModifier(null, null)
+                      inPlainSync()
+                    inPlainSync()
+                    parseFunctionBody(), false, true)
+                      ensureBlock(), Instance of 'Template<(Token) => Message>', null)
+                        reportRecoverableError(0, Message[ExpectedFunctionBody, Expected a function body, but got '0'., null, {lexeme: 0}])
+                          listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '0'., null, {lexeme: 0}], 0, 0)
+                        insertBlock())
+                          rewriter()
+                          rewriter()
+                      listener: handleInvalidFunctionBody({)
+                    listener: endClassMethod(null, operator, (, null, })
+                  listener: endMember()
+            notEofOrValue(}, 0)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, C)
+              parseMetadataStar(})
+                listener: beginMetadataStar(0)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              recoverFromInvalidMember(}, }, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, C)
+                reportRecoverableErrorWithToken(0, Instance of 'Template<(Token) => Message>')
+                  listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '0'., null, {lexeme: 0}], 0, 0)
+                listener: handleInvalidMember(0)
+                listener: endMember()
+            notEofOrValue(}, ;)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(0, DeclarationKind.Class, C)
+              parseMetadataStar(0)
+                listener: beginMetadataStar(;)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              recoverFromInvalidMember(0, 0, null, null, null, null, null, null, 0, Instance of 'NoType', null, DeclarationKind.Class, C)
+                reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
+                  listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {lexeme: ;}], ;, ;)
+                listener: handleInvalidMember(;)
+                listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 5, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(}, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(C, classOrMixinDeclaration)
+        listener: handleNoTypeVariables({)
+        listener: beginClassDeclaration(class, null, null, null, C)
+        parseClass(C, class, class, C)
+          parseClassHeaderOpt(C, class, class)
+            parseClassExtendsOpt(C)
+              listener: handleNoType(C)
+              listener: handleClassExtends(null, 1)
+            parseClassWithClauseOpt(C)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(C)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(C, DeclarationKind.Class, C)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, C)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, C)
+              parseMetadataStar({)
+                listener: beginMetadataStar(C)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod({, null, null, null, null, null, null, {, Instance of 'NoType', null, C, DeclarationKind.Class, C, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, C)
+                listener: handleNoType({)
+                ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
+                  listener: handleIdentifier(C, methodDeclaration)
+                parseQualifiedRestOpt(C, methodDeclarationContinuation)
+                parseMethodTypeVar(C)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(C, C, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(C, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  parseInitializers(:)
+                    listener: beginInitializers(:)
+                    parseInitializer(:)
+                      listener: beginInitializer(super)
+                      parseSuperInitializerExpression(:)
+                        parseInitializerExpressionRest(:)
+                          parseExpression(:)
+                            parsePrecedenceExpression(:, 1, true)
+                              parseUnaryExpression(:, true)
+                                parsePrimary(:, expression)
+                                  parseSuperExpression(:, expression)
+                                    listener: handleSuperExpression(super, expression)
+                              parsePrecedenceExpression(=, 1, true)
+                                parseUnaryExpression(=, true)
+                                  parsePrimary(=, expression)
+                                    parseLiteralInt(=)
+                                      listener: handleLiteralInt(0)
+                              listener: handleAssignmentExpression(=)
+                          listener: endInitializer(;)
+                    listener: endInitializers(1, :, ;)
+                parseAsyncModifierOpt(0)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(0, false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, C, (, :, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
+    parseMetadataStar(})
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
+      parseClassDeclarationModifiers(}, class)
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
+        ensureIdentifier(class, classOrMixinDeclaration)
+          listener: handleIdentifier(C, classOrMixinDeclaration)
+        listener: handleNoTypeVariables({)
+        listener: beginClassDeclaration(class, null, null, null, C)
+        parseClass(C, class, class, C)
+          parseClassHeaderOpt(C, class, class)
+            parseClassExtendsOpt(C)
+              listener: handleNoType(C)
+              listener: handleClassExtends(null, 1)
+            parseClassWithClauseOpt(C)
+              listener: handleClassNoWithClause()
+            parseClassOrMixinOrEnumImplementsOpt(C)
+              listener: handleImplements(null, 0)
+            listener: handleClassHeader(class, class, null)
+          parseClassOrMixinOrExtensionBody(C, DeclarationKind.Class, C)
+            listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
+            notEofOrValue(}, C)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl({, DeclarationKind.Class, C)
+              parseMetadataStar({)
+                listener: beginMetadataStar(C)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(()
+              parseMethod({, null, null, null, null, null, null, {, Instance of 'NoType', null, C, DeclarationKind.Class, C, false)
+                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, C)
+                listener: handleNoType({)
+                ensureIdentifierPotentiallyRecovered({, methodDeclaration, false)
+                  listener: handleIdentifier(C, methodDeclaration)
+                parseQualifiedRestOpt(C, methodDeclarationContinuation)
+                parseMethodTypeVar(C)
+                  listener: handleNoTypeVariables(()
+                parseGetterOrFormalParameters(C, C, false, MemberKind.NonStaticMethod)
+                  parseFormalParameters(C, MemberKind.NonStaticMethod)
+                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                      listener: endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
+                parseInitializersOpt())
+                  parseInitializers(:)
+                    listener: beginInitializers(:)
+                    parseInitializer(:)
+                      listener: beginInitializer(this)
+                      reportRecoverableError(=, Message[ExpectedButGot, Expected '.' before this., null, {string: .}])
+                        listener: handleRecoverableError(Message[ExpectedButGot, Expected '.' before this., null, {string: .}], =, =)
+                      rewriter()
+                      rewriter()
+                      insertSyntheticIdentifier(:, fieldInitializer, message: MissingAssignmentInInitializer, messageOnToken: null)
+                        reportRecoverableError(this, MissingAssignmentInInitializer)
+                          listener: handleRecoverableError(MissingAssignmentInInitializer, this, this)
+                        rewriter()
+                      rewriter()
+                      parseInitializerExpressionRest(:)
+                        parseExpression(:)
+                          parsePrecedenceExpression(:, 1, true)
+                            parseUnaryExpression(:, true)
+                              parsePrimary(:, expression)
+                                parseSendOrFunctionLiteral(:, expression)
+                                  parseSend(:, expression)
+                                    isNextIdentifier(:)
+                                    ensureIdentifier(:, expression)
+                                      listener: handleIdentifier(, expression)
+                                    listener: handleNoTypeArguments(=)
+                                    parseArgumentsOpt()
+                                      listener: handleNoArguments(=)
+                                    listener: handleSend(, =)
+                            parsePrecedenceExpression(=, 1, true)
+                              parseUnaryExpression(=, true)
+                                parsePrimary(=, expression)
+                                  parseThisExpression(=, expression)
+                                    listener: handleThisExpression(this, expression)
+                              parsePrimary(., expressionContinuation)
+                                parseSendOrFunctionLiteral(., expressionContinuation)
+                                  parseSend(., expressionContinuation)
+                                    isNextIdentifier(.)
+                                    ensureIdentifier(., expressionContinuation)
+                                      listener: handleIdentifier(, expressionContinuation)
+                                    listener: handleNoTypeArguments(=)
+                                    parseArgumentsOpt()
+                                      listener: handleNoArguments(=)
+                                    listener: handleSend(, =)
+                              listener: handleEndingBinaryExpression(.)
+                              parsePrecedenceExpression(=, 1, true)
+                                parseUnaryExpression(=, true)
+                                  parsePrimary(=, expression)
+                                    parseLiteralInt(=)
+                                      listener: handleLiteralInt(0)
+                              listener: handleAssignmentExpression(=)
+                            listener: handleAssignmentExpression(=)
+                        listener: endInitializer(;)
+                    listener: endInitializers(1, :, ;)
+                parseAsyncModifierOpt(0)
+                  listener: handleAsyncModifier(null, null)
+                  inPlainSync()
+                inPlainSync()
+                parseFunctionBody(0, false, true)
+                  listener: handleEmptyFunctionBody(;)
+                listener: endClassConstructor(null, C, (, :, ;)
+              listener: endMember()
+            notEofOrValue(}, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
+          listener: endClassDeclaration(class, })
+  listener: endTopLevelDeclaration()
+  reportAllErrorTokens(class)
+  listener: endCompilationUnit(4, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.parser.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.parser.expect
new file mode 100644
index 0000000..240f58bc
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.parser.expect
@@ -0,0 +1,35 @@
+NOTICE: Stream was rewritten by parser!
+
+class C {
+C() : assert (*synthetic*)= *synthetic*;0;
+}
+
+class C {
+C() : *synthetic*=*synthetic*{}null operator= (){}0;
+}
+
+class C {
+C() : super = 0;
+}
+
+class C {
+C() : *synthetic*=this .*synthetic*= 0;
+}
+
+
+class[KeywordToken] C[StringToken] {[BeginToken]
+C[StringToken]([BeginToken])[SimpleToken] :[SimpleToken] assert[KeywordToken] ([SyntheticBeginToken][SyntheticStringToken])[SyntheticToken]=[SimpleToken] [SyntheticStringToken];[SyntheticToken]0[StringToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] C[StringToken] {[BeginToken]
+C[StringToken]([BeginToken])[SimpleToken] :[SimpleToken] [SyntheticStringToken]=[SyntheticToken][SyntheticStringToken]{[SyntheticBeginToken]}[SyntheticToken]null[KeywordToken] operator[SyntheticKeywordToken]=[SimpleToken] ([SyntheticBeginToken])[SyntheticToken]{[SyntheticBeginToken]}[SyntheticToken]0[StringToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] C[StringToken] {[BeginToken]
+C[StringToken]([BeginToken])[SimpleToken] :[SimpleToken] super[KeywordToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] C[StringToken] {[BeginToken]
+C[StringToken]([BeginToken])[SimpleToken] :[SimpleToken] [SyntheticStringToken]=[SyntheticToken]this[KeywordToken] .[SyntheticToken][SyntheticStringToken]=[SimpleToken] 0[StringToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.scanner.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.scanner.expect
new file mode 100644
index 0000000..1550ac2
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.scanner.expect
@@ -0,0 +1,33 @@
+class C {
+C() : assert = 0;
+}
+
+class C {
+C() : null = 0;
+}
+
+class C {
+C() : super = 0;
+}
+
+class C {
+C() : this = 0;
+}
+
+
+class[KeywordToken] C[StringToken] {[BeginToken]
+C[StringToken]([BeginToken])[SimpleToken] :[SimpleToken] assert[KeywordToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] C[StringToken] {[BeginToken]
+C[StringToken]([BeginToken])[SimpleToken] :[SimpleToken] null[KeywordToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] C[StringToken] {[BeginToken]
+C[StringToken]([BeginToken])[SimpleToken] :[SimpleToken] super[KeywordToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+}[SimpleToken]
+
+class[KeywordToken] C[StringToken] {[BeginToken]
+C[StringToken]([BeginToken])[SimpleToken] :[SimpleToken] this[KeywordToken] =[SimpleToken] 0[StringToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.expect
index bcdcfab..99e1e95 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.expect
@@ -148,7 +148,7 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(abstract)
             handleType(int, null)
@@ -156,12 +156,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(as)
             handleType(int, null)
@@ -169,12 +169,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(assert)
             handleType(int, null)
@@ -183,12 +183,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(async)
             handleType(int, null)
@@ -196,12 +196,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(await)
             handleType(int, null)
@@ -209,12 +209,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(break)
             handleType(int, null)
@@ -223,12 +223,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(case)
             handleType(int, null)
@@ -237,12 +237,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(catch)
             handleType(int, null)
@@ -251,12 +251,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(class)
             handleType(int, null)
@@ -265,12 +265,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(const)
             handleType(int, null)
@@ -279,12 +279,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(continue)
             handleType(int, null)
@@ -293,12 +293,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(covariant)
             handleType(int, null)
@@ -306,12 +306,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(default)
             handleType(int, null)
@@ -320,12 +320,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(deferred)
             handleType(int, null)
@@ -333,12 +333,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(do)
             handleType(int, null)
@@ -347,12 +347,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(dynamic)
             handleType(int, null)
@@ -360,12 +360,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(else)
             handleType(int, null)
@@ -374,12 +374,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(enum)
             handleType(int, null)
@@ -388,12 +388,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(export)
             handleType(int, null)
@@ -401,12 +401,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(extends)
             handleType(int, null)
@@ -415,12 +415,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(extension)
             handleType(int, null)
@@ -428,12 +428,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(external)
             handleType(int, null)
@@ -441,12 +441,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(factory)
             handleType(int, null)
@@ -454,12 +454,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(false)
             handleType(int, null)
@@ -468,12 +468,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(final)
             handleType(int, null)
@@ -482,12 +482,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(finally)
             handleType(int, null)
@@ -496,12 +496,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(for)
             handleType(int, null)
@@ -510,12 +510,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(Function)
             handleType(int, null)
@@ -523,12 +523,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(get)
             handleType(int, null)
@@ -536,12 +536,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(hide)
             handleType(int, null)
@@ -549,12 +549,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(if)
             handleType(int, null)
@@ -563,12 +563,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(implements)
             handleType(int, null)
@@ -576,12 +576,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(import)
             handleType(int, null)
@@ -589,12 +589,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(in)
             handleType(int, null)
@@ -603,12 +603,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(inout)
             handleType(int, null)
@@ -616,12 +616,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(interface)
             handleType(int, null)
@@ -629,12 +629,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(is)
             handleType(int, null)
@@ -643,12 +643,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(late)
             handleType(int, null)
@@ -656,12 +656,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(library)
             handleType(int, null)
@@ -669,12 +669,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(mixin)
             handleType(int, null)
@@ -682,12 +682,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(native)
             handleType(int, null)
@@ -695,12 +695,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(new)
             handleType(int, null)
@@ -709,12 +709,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(null)
             handleType(int, null)
@@ -723,12 +723,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(of)
             handleType(int, null)
@@ -736,12 +736,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(on)
             handleType(int, null)
@@ -749,12 +749,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(operator)
             handleType(int, null)
@@ -762,12 +762,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(out)
             handleType(int, null)
@@ -775,12 +775,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(part)
             handleType(int, null)
@@ -788,12 +788,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(patch)
             handleType(int, null)
@@ -801,12 +801,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(required)
             handleType(int, null)
@@ -814,12 +814,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(rethrow)
             handleType(int, null)
@@ -828,12 +828,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(return)
             handleType(int, null)
@@ -842,12 +842,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(set)
             handleType(int, null)
@@ -855,12 +855,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(show)
             handleType(int, null)
@@ -868,12 +868,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(source)
             handleType(int, null)
@@ -881,12 +881,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(static)
             handleType(int, null)
@@ -894,12 +894,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(super)
             handleType(int, null)
@@ -908,12 +908,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(switch)
             handleType(int, null)
@@ -922,12 +922,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(sync)
             handleType(int, null)
@@ -935,12 +935,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(this)
             handleType(int, null)
@@ -949,12 +949,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(throw)
             handleType(int, null)
@@ -963,12 +963,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(true)
             handleType(int, null)
@@ -977,12 +977,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(try)
             handleType(int, null)
@@ -991,12 +991,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(typedef)
             handleType(int, null)
@@ -1004,12 +1004,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(var)
             handleType(int, null)
@@ -1018,12 +1018,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(void)
             handleType(int, null)
@@ -1032,12 +1032,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(while)
             handleType(int, null)
@@ -1046,12 +1046,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(with)
             handleType(int, null)
@@ -1060,12 +1060,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(yield)
             handleType(int, null)
@@ -1073,7 +1073,7 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 69, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.intertwined.expect
index c0bccc3..20ad844 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,14 +31,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', abstract, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              parseFields({, null, null, null, null, null, null, null, {, Instance of 'SimpleType', abstract, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(abstract)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(abstract, fieldDeclaration)
-                parseFieldInitializerOpt(abstract, abstract, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(abstract, abstract, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -48,7 +47,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -56,14 +55,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', as, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', as, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(as)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(as, fieldDeclaration)
-                parseFieldInitializerOpt(as, as, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(as, as, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -72,7 +71,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -82,8 +81,8 @@
               listener: beginMember()
               isReservedKeyword(assert)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', assert, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', assert, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(assert)
                 listener: handleType(int, null)
@@ -91,7 +90,7 @@
                   reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
                   listener: handleIdentifier(assert, fieldDeclaration)
-                parseFieldInitializerOpt(assert, assert, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(assert, assert, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -100,7 +99,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -108,14 +107,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', async, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', async, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(async)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(async, fieldDeclaration)
-                parseFieldInitializerOpt(async, async, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(async, async, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -124,7 +123,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -132,14 +131,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', await, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', await, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(await)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(await, fieldDeclaration)
-                parseFieldInitializerOpt(await, await, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(await, await, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -148,7 +147,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -158,8 +157,8 @@
               listener: beginMember()
               isReservedKeyword(break)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', break, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', break, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(break)
                 listener: handleType(int, null)
@@ -167,7 +166,7 @@
                   reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
                   listener: handleIdentifier(break, fieldDeclaration)
-                parseFieldInitializerOpt(break, break, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(break, break, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -176,7 +175,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -186,8 +185,8 @@
               listener: beginMember()
               isReservedKeyword(case)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', case, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', case, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(case)
                 listener: handleType(int, null)
@@ -195,7 +194,7 @@
                   reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
                   listener: handleIdentifier(case, fieldDeclaration)
-                parseFieldInitializerOpt(case, case, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(case, case, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -204,7 +203,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -214,8 +213,8 @@
               listener: beginMember()
               isReservedKeyword(catch)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', catch, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', catch, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(catch)
                 listener: handleType(int, null)
@@ -223,7 +222,7 @@
                   reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
                   listener: handleIdentifier(catch, fieldDeclaration)
-                parseFieldInitializerOpt(catch, catch, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(catch, catch, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -232,7 +231,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -242,8 +241,8 @@
               listener: beginMember()
               isReservedKeyword(class)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', class, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', class, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(class)
                 listener: handleType(int, null)
@@ -251,7 +250,7 @@
                   reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
                   listener: handleIdentifier(class, fieldDeclaration)
-                parseFieldInitializerOpt(class, class, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(class, class, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -260,7 +259,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -270,8 +269,8 @@
               listener: beginMember()
               isReservedKeyword(const)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', const, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', const, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(const)
                 listener: handleType(int, null)
@@ -279,7 +278,7 @@
                   reportRecoverableErrorWithToken(const, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
                   listener: handleIdentifier(const, fieldDeclaration)
-                parseFieldInitializerOpt(const, const, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(const, const, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -288,7 +287,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -298,8 +297,8 @@
               listener: beginMember()
               isReservedKeyword(continue)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', continue, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', continue, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(continue)
                 listener: handleType(int, null)
@@ -307,7 +306,7 @@
                   reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
                   listener: handleIdentifier(continue, fieldDeclaration)
-                parseFieldInitializerOpt(continue, continue, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(continue, continue, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -316,7 +315,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -324,14 +323,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', covariant, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', covariant, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(covariant)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(covariant, fieldDeclaration)
-                parseFieldInitializerOpt(covariant, covariant, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(covariant, covariant, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -340,7 +339,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -350,8 +349,8 @@
               listener: beginMember()
               isReservedKeyword(default)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', default, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', default, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(default)
                 listener: handleType(int, null)
@@ -359,7 +358,7 @@
                   reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
                   listener: handleIdentifier(default, fieldDeclaration)
-                parseFieldInitializerOpt(default, default, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(default, default, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -368,7 +367,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -376,14 +375,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', deferred, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', deferred, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(deferred)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(deferred, fieldDeclaration)
-                parseFieldInitializerOpt(deferred, deferred, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(deferred, deferred, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -392,7 +391,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -402,8 +401,8 @@
               listener: beginMember()
               isReservedKeyword(do)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', do, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', do, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(do)
                 listener: handleType(int, null)
@@ -411,7 +410,7 @@
                   reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
                   listener: handleIdentifier(do, fieldDeclaration)
-                parseFieldInitializerOpt(do, do, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(do, do, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -420,7 +419,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -428,14 +427,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', dynamic, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', dynamic, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(dynamic)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(dynamic, fieldDeclaration)
-                parseFieldInitializerOpt(dynamic, dynamic, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(dynamic, dynamic, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -444,7 +443,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -454,8 +453,8 @@
               listener: beginMember()
               isReservedKeyword(else)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', else, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', else, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(else)
                 listener: handleType(int, null)
@@ -463,7 +462,7 @@
                   reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
                   listener: handleIdentifier(else, fieldDeclaration)
-                parseFieldInitializerOpt(else, else, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(else, else, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -472,7 +471,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -482,8 +481,8 @@
               listener: beginMember()
               isReservedKeyword(enum)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', enum, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', enum, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(enum)
                 listener: handleType(int, null)
@@ -491,7 +490,7 @@
                   reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
                   listener: handleIdentifier(enum, fieldDeclaration)
-                parseFieldInitializerOpt(enum, enum, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(enum, enum, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -500,7 +499,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -508,14 +507,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', export, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', export, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(export)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(export, fieldDeclaration)
-                parseFieldInitializerOpt(export, export, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(export, export, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -524,7 +523,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -534,8 +533,8 @@
               listener: beginMember()
               isReservedKeyword(extends)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', extends, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', extends, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(extends)
                 listener: handleType(int, null)
@@ -543,7 +542,7 @@
                   reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
                   listener: handleIdentifier(extends, fieldDeclaration)
-                parseFieldInitializerOpt(extends, extends, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(extends, extends, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -552,7 +551,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -560,14 +559,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', extension, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', extension, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(extension)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(extension, fieldDeclaration)
-                parseFieldInitializerOpt(extension, extension, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(extension, extension, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -576,7 +575,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -584,14 +583,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', external, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', external, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(external)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(external, fieldDeclaration)
-                parseFieldInitializerOpt(external, external, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(external, external, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -600,7 +599,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -608,14 +607,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', factory, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', factory, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(factory)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(factory, fieldDeclaration)
-                parseFieldInitializerOpt(factory, factory, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(factory, factory, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -624,7 +623,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -634,8 +633,8 @@
               listener: beginMember()
               isReservedKeyword(false)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', false, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', false, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(false)
                 listener: handleType(int, null)
@@ -643,7 +642,7 @@
                   reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
                   listener: handleIdentifier(false, fieldDeclaration)
-                parseFieldInitializerOpt(false, false, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(false, false, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -652,7 +651,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -662,8 +661,8 @@
               listener: beginMember()
               isReservedKeyword(final)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', final, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', final, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(final)
                 listener: handleType(int, null)
@@ -671,7 +670,7 @@
                   reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
                   listener: handleIdentifier(final, fieldDeclaration)
-                parseFieldInitializerOpt(final, final, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(final, final, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -680,7 +679,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -690,8 +689,8 @@
               listener: beginMember()
               isReservedKeyword(finally)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', finally, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', finally, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(finally)
                 listener: handleType(int, null)
@@ -699,7 +698,7 @@
                   reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
                   listener: handleIdentifier(finally, fieldDeclaration)
-                parseFieldInitializerOpt(finally, finally, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(finally, finally, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -708,7 +707,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -718,8 +717,8 @@
               listener: beginMember()
               isReservedKeyword(for)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', for, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', for, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(for)
                 listener: handleType(int, null)
@@ -727,7 +726,7 @@
                   reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
                   listener: handleIdentifier(for, fieldDeclaration)
-                parseFieldInitializerOpt(for, for, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(for, for, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -736,7 +735,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -744,14 +743,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', Function, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', Function, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(Function)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(Function, fieldDeclaration)
-                parseFieldInitializerOpt(Function, Function, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(Function, Function, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -760,7 +759,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -769,14 +768,14 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               isReservedKeyword(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', get, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', get, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(get)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(get, fieldDeclaration)
-                parseFieldInitializerOpt(get, get, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(get, get, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -785,7 +784,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -793,14 +792,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', hide, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', hide, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(hide)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(hide, fieldDeclaration)
-                parseFieldInitializerOpt(hide, hide, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(hide, hide, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -809,7 +808,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -819,8 +818,8 @@
               listener: beginMember()
               isReservedKeyword(if)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', if, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', if, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(if)
                 listener: handleType(int, null)
@@ -828,7 +827,7 @@
                   reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
                   listener: handleIdentifier(if, fieldDeclaration)
-                parseFieldInitializerOpt(if, if, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(if, if, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -837,7 +836,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -845,14 +844,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', implements, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', implements, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(implements)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(implements, fieldDeclaration)
-                parseFieldInitializerOpt(implements, implements, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(implements, implements, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -861,7 +860,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -869,14 +868,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', import, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', import, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(import)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(import, fieldDeclaration)
-                parseFieldInitializerOpt(import, import, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(import, import, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -885,7 +884,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -895,8 +894,8 @@
               listener: beginMember()
               isReservedKeyword(in)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', in, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', in, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(in)
                 listener: handleType(int, null)
@@ -904,7 +903,7 @@
                   reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
                   listener: handleIdentifier(in, fieldDeclaration)
-                parseFieldInitializerOpt(in, in, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(in, in, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -913,7 +912,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -921,14 +920,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', inout, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', inout, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(inout)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(inout, fieldDeclaration)
-                parseFieldInitializerOpt(inout, inout, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(inout, inout, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -937,7 +936,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -945,14 +944,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', interface, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', interface, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(interface)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(interface, fieldDeclaration)
-                parseFieldInitializerOpt(interface, interface, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(interface, interface, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -961,7 +960,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -971,8 +970,8 @@
               listener: beginMember()
               isReservedKeyword(is)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', is, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', is, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(is)
                 listener: handleType(int, null)
@@ -980,7 +979,7 @@
                   reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
                   listener: handleIdentifier(is, fieldDeclaration)
-                parseFieldInitializerOpt(is, is, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(is, is, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -989,7 +988,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -997,14 +996,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', late, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', late, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(late)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(late, fieldDeclaration)
-                parseFieldInitializerOpt(late, late, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(late, late, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1013,7 +1012,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1021,14 +1020,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', library, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', library, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(library)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(library, fieldDeclaration)
-                parseFieldInitializerOpt(library, library, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(library, library, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1037,7 +1036,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1045,14 +1044,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', mixin, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', mixin, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(mixin)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(mixin, fieldDeclaration)
-                parseFieldInitializerOpt(mixin, mixin, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(mixin, mixin, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1061,7 +1060,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1069,14 +1068,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', native, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', native, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(native)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(native, fieldDeclaration)
-                parseFieldInitializerOpt(native, native, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(native, native, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1085,7 +1084,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1095,8 +1094,8 @@
               listener: beginMember()
               isReservedKeyword(new)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', new, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', new, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(new)
                 listener: handleType(int, null)
@@ -1104,7 +1103,7 @@
                   reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
                   listener: handleIdentifier(new, fieldDeclaration)
-                parseFieldInitializerOpt(new, new, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(new, new, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1113,7 +1112,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1123,8 +1122,8 @@
               listener: beginMember()
               isReservedKeyword(null)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', null, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', null, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(null)
                 listener: handleType(int, null)
@@ -1132,7 +1131,7 @@
                   reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
                   listener: handleIdentifier(null, fieldDeclaration)
-                parseFieldInitializerOpt(null, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(null, null, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1141,7 +1140,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1149,14 +1148,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', of, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', of, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(of)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(of, fieldDeclaration)
-                parseFieldInitializerOpt(of, of, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(of, of, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1165,7 +1164,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1173,14 +1172,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', on, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', on, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(on)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(on, fieldDeclaration)
-                parseFieldInitializerOpt(on, on, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(on, on, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1189,7 +1188,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1198,14 +1197,14 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               isUnaryMinus(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', operator, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', operator, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(operator)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(operator, fieldDeclaration)
-                parseFieldInitializerOpt(operator, operator, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(operator, operator, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1214,7 +1213,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1222,14 +1221,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', out, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', out, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(out)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(out, fieldDeclaration)
-                parseFieldInitializerOpt(out, out, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(out, out, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1238,7 +1237,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1246,14 +1245,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', part, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', part, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(part)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(part, fieldDeclaration)
-                parseFieldInitializerOpt(part, part, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(part, part, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1262,7 +1261,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1270,14 +1269,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', patch, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', patch, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(patch)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(patch, fieldDeclaration)
-                parseFieldInitializerOpt(patch, patch, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(patch, patch, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1286,7 +1285,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1294,14 +1293,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', required, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', required, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(required)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(required, fieldDeclaration)
-                parseFieldInitializerOpt(required, required, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(required, required, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1310,7 +1309,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1320,8 +1319,8 @@
               listener: beginMember()
               isReservedKeyword(rethrow)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', rethrow, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', rethrow, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(rethrow)
                 listener: handleType(int, null)
@@ -1329,7 +1328,7 @@
                   reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
                   listener: handleIdentifier(rethrow, fieldDeclaration)
-                parseFieldInitializerOpt(rethrow, rethrow, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(rethrow, rethrow, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1338,7 +1337,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1348,8 +1347,8 @@
               listener: beginMember()
               isReservedKeyword(return)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', return, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', return, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(return)
                 listener: handleType(int, null)
@@ -1357,7 +1356,7 @@
                   reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
                   listener: handleIdentifier(return, fieldDeclaration)
-                parseFieldInitializerOpt(return, return, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(return, return, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1366,7 +1365,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1375,14 +1374,14 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               isReservedKeyword(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', set, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', set, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(set)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(set, fieldDeclaration)
-                parseFieldInitializerOpt(set, set, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(set, set, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1391,7 +1390,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1399,14 +1398,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', show, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', show, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(show)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(show, fieldDeclaration)
-                parseFieldInitializerOpt(show, show, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(show, show, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1415,7 +1414,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1423,14 +1422,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', source, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', source, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(source)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(source, fieldDeclaration)
-                parseFieldInitializerOpt(source, source, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(source, source, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1439,7 +1438,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1447,14 +1446,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', static, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', static, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(static)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(static, fieldDeclaration)
-                parseFieldInitializerOpt(static, static, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(static, static, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1463,7 +1462,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1471,97 +1470,17 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              isReservedKeyword(super)
-              indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', super, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
-                listener: handleIdentifier(int, typeReference)
-                listener: handleNoTypeArguments(super)
-                listener: handleType(int, null)
-                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
-                  reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
-                  listener: handleIdentifier(super, fieldDeclaration)
-                parseFieldInitializerOpt(super, super, null, null, null, null, DeclarationKind.Class, WrapperClass)
-                  listener: beginFieldInitializer(=)
-                  parseExpression(=)
-                    parsePrecedenceExpression(=, 1, true)
-                      parseUnaryExpression(=, true)
-                        parsePrimary(=, expression)
-                          parseLiteralInt(=)
-                            listener: handleLiteralInt(42)
-                  listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
-              listener: endMember()
-            notEofOrValue(}, int)
-            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
-              parseMetadataStar(;)
-                listener: beginMetadataStar(int)
-                listener: endMetadataStar(0)
-              listener: beginMember()
-              isReservedKeyword(switch)
-              indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', switch, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
-                listener: handleIdentifier(int, typeReference)
-                listener: handleNoTypeArguments(switch)
-                listener: handleType(int, null)
-                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
-                  reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
-                  listener: handleIdentifier(switch, fieldDeclaration)
-                parseFieldInitializerOpt(switch, switch, null, null, null, null, DeclarationKind.Class, WrapperClass)
-                  listener: beginFieldInitializer(=)
-                  parseExpression(=)
-                    parsePrecedenceExpression(=, 1, true)
-                      parseUnaryExpression(=, true)
-                        parsePrimary(=, expression)
-                          parseLiteralInt(=)
-                            listener: handleLiteralInt(42)
-                  listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
-              listener: endMember()
-            notEofOrValue(}, int)
-            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
-              parseMetadataStar(;)
-                listener: beginMetadataStar(int)
-                listener: endMetadataStar(0)
-              listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', sync, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
-                listener: handleIdentifier(int, typeReference)
-                listener: handleNoTypeArguments(sync)
-                listener: handleType(int, null)
-                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
-                  listener: handleIdentifier(sync, fieldDeclaration)
-                parseFieldInitializerOpt(sync, sync, null, null, null, null, DeclarationKind.Class, WrapperClass)
-                  listener: beginFieldInitializer(=)
-                  parseExpression(=)
-                    parsePrecedenceExpression(=, 1, true)
-                      parseUnaryExpression(=, true)
-                        parsePrimary(=, expression)
-                          parseLiteralInt(=)
-                            listener: handleLiteralInt(42)
-                  listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
-              listener: endMember()
-            notEofOrValue(}, int)
-            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
-              parseMetadataStar(;)
-                listener: beginMetadataStar(int)
-                listener: endMetadataStar(0)
-              listener: beginMember()
-              recoverFromInvalidMember(int, ;, null, null, null, null, null, null, ;, Instance of 'SimpleType', null, DeclarationKind.Class, WrapperClass)
-                parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', this, DeclarationKind.Class, WrapperClass, false)
-                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              recoverFromInvalidMember(int, ;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', null, DeclarationKind.Class, WrapperClass)
+                parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', super, DeclarationKind.Class, WrapperClass, false)
+                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                   listener: handleIdentifier(int, typeReference)
-                  listener: handleNoTypeArguments(this)
+                  listener: handleNoTypeArguments(super)
                   listener: handleType(int, null)
                   ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
-                    reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
-                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
-                    listener: handleIdentifier(this, fieldDeclaration)
-                  parseFieldInitializerOpt(this, this, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                    reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
+                    listener: handleIdentifier(super, fieldDeclaration)
+                  parseFieldInitializerOpt(super, super, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                     listener: beginFieldInitializer(=)
                     parseExpression(=)
                       parsePrecedenceExpression(=, 1, true)
@@ -1570,7 +1489,86 @@
                             parseLiteralInt(=)
                               listener: handleLiteralInt(42)
                     listener: endFieldInitializer(=, ;)
-                  listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                  listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
+                listener: endMember()
+            notEofOrValue(}, int)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(int)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              isReservedKeyword(switch)
+              indicatesMethodOrField(=)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', switch, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(switch)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
+                  reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
+                  listener: handleIdentifier(switch, fieldDeclaration)
+                parseFieldInitializerOpt(switch, switch, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                  listener: beginFieldInitializer(=)
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFieldInitializer(=, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
+              listener: endMember()
+            notEofOrValue(}, int)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(int)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', sync, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
+                listener: handleIdentifier(int, typeReference)
+                listener: handleNoTypeArguments(sync)
+                listener: handleType(int, null)
+                ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                  listener: handleIdentifier(sync, fieldDeclaration)
+                parseFieldInitializerOpt(sync, sync, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                  listener: beginFieldInitializer(=)
+                  parseExpression(=)
+                    parsePrecedenceExpression(=, 1, true)
+                      parseUnaryExpression(=, true)
+                        parsePrimary(=, expression)
+                          parseLiteralInt(=)
+                            listener: handleLiteralInt(42)
+                  listener: endFieldInitializer(=, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
+              listener: endMember()
+            notEofOrValue(}, int)
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(int)
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              recoverFromInvalidMember(int, ;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', null, DeclarationKind.Class, WrapperClass)
+                parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', this, DeclarationKind.Class, WrapperClass, false)
+                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(this)
+                  listener: handleType(int, null)
+                  ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                    reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
+                    listener: handleIdentifier(this, fieldDeclaration)
+                  parseFieldInitializerOpt(this, this, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                    listener: beginFieldInitializer(=)
+                    parseExpression(=)
+                      parsePrecedenceExpression(=, 1, true)
+                        parseUnaryExpression(=, true)
+                          parsePrimary(=, expression)
+                            parseLiteralInt(=)
+                              listener: handleLiteralInt(42)
+                    listener: endFieldInitializer(=, ;)
+                  listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
                 listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1580,8 +1578,8 @@
               listener: beginMember()
               isReservedKeyword(throw)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', throw, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', throw, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(throw)
                 listener: handleType(int, null)
@@ -1589,7 +1587,7 @@
                   reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
                   listener: handleIdentifier(throw, fieldDeclaration)
-                parseFieldInitializerOpt(throw, throw, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(throw, throw, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1598,7 +1596,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1608,8 +1606,8 @@
               listener: beginMember()
               isReservedKeyword(true)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', true, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', true, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(true)
                 listener: handleType(int, null)
@@ -1617,7 +1615,7 @@
                   reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
                   listener: handleIdentifier(true, fieldDeclaration)
-                parseFieldInitializerOpt(true, true, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(true, true, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1626,7 +1624,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1636,8 +1634,8 @@
               listener: beginMember()
               isReservedKeyword(try)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', try, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', try, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(try)
                 listener: handleType(int, null)
@@ -1645,7 +1643,7 @@
                   reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
                   listener: handleIdentifier(try, fieldDeclaration)
-                parseFieldInitializerOpt(try, try, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(try, try, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1654,7 +1652,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1662,14 +1660,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', typedef, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', typedef, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(typedef)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(typedef, fieldDeclaration)
-                parseFieldInitializerOpt(typedef, typedef, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(typedef, typedef, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1678,7 +1676,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1688,8 +1686,8 @@
               listener: beginMember()
               isReservedKeyword(var)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', var, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', var, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(var)
                 listener: handleType(int, null)
@@ -1697,7 +1695,7 @@
                   reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
                   listener: handleIdentifier(var, fieldDeclaration)
-                parseFieldInitializerOpt(var, var, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(var, var, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1706,7 +1704,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1716,8 +1714,8 @@
               listener: beginMember()
               isReservedKeyword(void)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', void, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', void, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(void)
                 listener: handleType(int, null)
@@ -1725,7 +1723,7 @@
                   reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
                   listener: handleIdentifier(void, fieldDeclaration)
-                parseFieldInitializerOpt(void, void, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(void, void, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1734,7 +1732,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1744,8 +1742,8 @@
               listener: beginMember()
               isReservedKeyword(while)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', while, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', while, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(while)
                 listener: handleType(int, null)
@@ -1753,7 +1751,7 @@
                   reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
                   listener: handleIdentifier(while, fieldDeclaration)
-                parseFieldInitializerOpt(while, while, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(while, while, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1762,7 +1760,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1772,8 +1770,8 @@
               listener: beginMember()
               isReservedKeyword(with)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', with, DeclarationKind.Class, WrapperClass, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', with, DeclarationKind.Class, WrapperClass, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(with)
                 listener: handleType(int, null)
@@ -1781,7 +1779,7 @@
                   reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
                   listener: handleIdentifier(with, fieldDeclaration)
-                parseFieldInitializerOpt(with, with, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(with, with, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1790,7 +1788,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -1798,14 +1796,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', yield, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', yield, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(yield)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(yield, fieldDeclaration)
-                parseFieldInitializerOpt(yield, yield, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(yield, yield, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -1814,7 +1812,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 69, {, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.expect
index 748134a..a3a06b2 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.expect
@@ -308,6 +308,14 @@
   int super(int x) {
       ^^^^^
 
+parser/error_recovery/keyword_named_class_methods:282:7: Expected ';' after this.
+  int super(int x) {
+      ^^^^^
+
+parser/error_recovery/keyword_named_class_methods:282:12: Expected an identifier, but got '('.
+  int super(int x) {
+           ^
+
 parser/error_recovery/keyword_named_class_methods:287:7: 'switch' can't be used as an identifier because it's a keyword.
   int switch(int x) {
       ^^^^^^
@@ -3883,12 +3891,23 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginMethod(DeclarationKind.Class, null, null, null, null, null, super)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, })
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(super)
             handleType(int, null)
             handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
-            handleIdentifier(super, methodDeclaration)
+            handleIdentifier(super, fieldDeclaration)
+            handleNoFieldInitializer(()
+            handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], super, super)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
+        endMember()
+        beginMetadataStar(()
+        endMetadataStar(0)
+        beginMember()
+          beginMethod(DeclarationKind.Class, null, null, null, null, null, ()
+            handleNoType(;)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
+            handleIdentifier(, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
               beginMetadataStar(int)
@@ -3937,7 +3956,7 @@
                 endBinaryExpression(+)
               endReturnStatement(true, return, ;)
             endBlockFunctionBody(2, {, })
-          endClassMethod(null, int, (, null, })
+          endClassMethod(null, , (, null, })
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
@@ -4072,7 +4091,7 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, })
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, })
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(this)
             handleType(int, null)
@@ -4080,7 +4099,7 @@
             handleIdentifier(this, fieldDeclaration)
             handleNoFieldInitializer(()
             handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], this, this)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(()
         endMetadataStar(0)
@@ -4743,7 +4762,7 @@
             endBlockFunctionBody(2, {, })
           endClassMethod(null, int, (, null, })
         endMember()
-      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 70, {, })
+      endClassOrMixinOrExtensionBody(DeclarationKind.Class, 71, {, })
     endClassDeclaration(class, })
   endTopLevelDeclaration()
 endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.intertwined.expect
index afc8d96..4bb7d7b 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -8560,141 +8559,164 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              isReservedKeyword(super)
-              indicatesMethodOrField(()
-              parseMethod(}, null, null, null, null, null, null, }, Instance of 'SimpleType', null, super, DeclarationKind.Class, WrapperClass, true)
-                listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, super)
-                listener: handleIdentifier(int, typeReference)
-                listener: handleNoTypeArguments(super)
-                listener: handleType(int, null)
-                ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
-                  reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
-                  listener: handleIdentifier(super, methodDeclaration)
-                parseQualifiedRestOpt(super, methodDeclarationContinuation)
-                parseMethodTypeVar(super)
-                  listener: handleNoTypeVariables(()
-                parseGetterOrFormalParameters(super, super, false, MemberKind.NonStaticMethod)
-                  parseFormalParameters(super, MemberKind.NonStaticMethod)
-                    parseFormalParametersRest((, MemberKind.NonStaticMethod)
-                      listener: beginFormalParameters((, MemberKind.NonStaticMethod)
-                      parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-                        parseMetadataStar(()
-                          listener: beginMetadataStar(int)
-                          listener: endMetadataStar(0)
-                        listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
-                        listener: handleIdentifier(int, typeReference)
-                        listener: handleNoTypeArguments(x)
-                        listener: handleType(int, null)
-                        ensureIdentifier(int, formalParameterDeclaration)
-                          listener: handleIdentifier(x, formalParameterDeclaration)
-                        listener: handleFormalParameterWithoutValue())
-                        listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
-                      listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
-                parseInitializersOpt())
-                  listener: handleNoInitializers()
-                parseAsyncModifierOpt())
-                  listener: handleAsyncModifier(null, null)
+              recoverFromInvalidMember(int, }, null, null, null, null, null, null, null, }, Instance of 'SimpleType', null, DeclarationKind.Class, WrapperClass)
+                parseFields(}, null, null, null, null, null, null, null, }, Instance of 'SimpleType', super, DeclarationKind.Class, WrapperClass, false)
+                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, })
+                  listener: handleIdentifier(int, typeReference)
+                  listener: handleNoTypeArguments(super)
+                  listener: handleType(int, null)
+                  ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
+                    reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
+                    listener: handleIdentifier(super, fieldDeclaration)
+                  parseFieldInitializerOpt(super, super, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                    listener: handleNoFieldInitializer(()
+                  ensureSemicolon(super)
+                    reportRecoverableError(super, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+                      listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], super, super)
+                    rewriter()
+                  listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
+                listener: endMember()
+            notEofOrValue(}, ()
+            parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
+              parseMetadataStar(;)
+                listener: beginMetadataStar(()
+                listener: endMetadataStar(0)
+              listener: beginMember()
+              recoverFromInvalidMember(;, ;, null, null, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+                parseMethod(;, null, null, null, null, null, null, ;, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass, false)
+                  listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, ()
+                  listener: handleNoType(;)
+                  ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
+                    insertSyntheticIdentifier(;, methodDeclaration, message: null, messageOnToken: null)
+                      reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}])
+                        listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
+                      rewriter()
+                    listener: handleIdentifier(, methodDeclaration)
+                  parseQualifiedRestOpt(, methodDeclarationContinuation)
+                  parseMethodTypeVar()
+                    listener: handleNoTypeVariables(()
+                  parseGetterOrFormalParameters(, (, false, MemberKind.NonStaticMethod)
+                    parseFormalParameters(, MemberKind.NonStaticMethod)
+                      parseFormalParametersRest((, MemberKind.NonStaticMethod)
+                        listener: beginFormalParameters((, MemberKind.NonStaticMethod)
+                        parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                          parseMetadataStar(()
+                            listener: beginMetadataStar(int)
+                            listener: endMetadataStar(0)
+                          listener: beginFormalParameter(int, MemberKind.NonStaticMethod, null, null, null)
+                          listener: handleIdentifier(int, typeReference)
+                          listener: handleNoTypeArguments(x)
+                          listener: handleType(int, null)
+                          ensureIdentifier(int, formalParameterDeclaration)
+                            listener: handleIdentifier(x, formalParameterDeclaration)
+                          listener: handleFormalParameterWithoutValue())
+                          listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.NonStaticMethod)
+                        listener: endFormalParameters(1, (, ), MemberKind.NonStaticMethod)
+                  parseInitializersOpt())
+                    listener: handleNoInitializers()
+                  parseAsyncModifierOpt())
+                    listener: handleAsyncModifier(null, null)
+                    inPlainSync()
                   inPlainSync()
-                inPlainSync()
-                parseFunctionBody(), false, true)
-                  listener: beginBlockFunctionBody({)
-                  notEofOrValue(}, if)
-                  parseStatement({)
-                    parseStatementX({)
-                      parseIfStatement({)
-                        listener: beginIfStatement(if)
-                        ensureParenthesizedCondition(if)
-                          parseExpressionInParenthesisRest(()
-                            parseExpression(()
-                              parsePrecedenceExpression((, 1, true)
-                                parseUnaryExpression((, true)
-                                  parsePrimary((, expression)
-                                    parseSendOrFunctionLiteral((, expression)
-                                      parseSend((, expression)
-                                        isNextIdentifier(()
-                                        ensureIdentifier((, expression)
-                                          listener: handleIdentifier(x, expression)
-                                        listener: handleNoTypeArguments(==)
-                                        parseArgumentsOpt(x)
-                                          listener: handleNoArguments(==)
-                                        listener: handleSend(x, ==)
-                                listener: beginBinaryExpression(==)
-                                parsePrecedenceExpression(==, 8, true)
-                                  parseUnaryExpression(==, true)
-                                    parsePrimary(==, expression)
-                                      parseLiteralInt(==)
-                                        listener: handleLiteralInt(0)
-                                listener: endBinaryExpression(==)
-                            ensureCloseParen(0, ()
-                          listener: handleParenthesizedCondition(()
-                        listener: beginThenStatement(return)
-                        parseStatement())
-                          parseStatementX())
-                            parseReturnStatement())
-                              listener: beginReturnStatement(return)
-                              parseExpression(return)
-                                parsePrecedenceExpression(return, 1, true)
-                                  parseUnaryExpression(return, true)
-                                    parsePrimary(return, expression)
-                                      parseLiteralInt(return)
-                                        listener: handleLiteralInt(42)
-                              ensureSemicolon(42)
-                              listener: endReturnStatement(true, return, ;)
-                              inGenerator()
-                        listener: endThenStatement(;)
-                        listener: endIfStatement(if, null)
-                  notEofOrValue(}, return)
-                  parseStatement(;)
-                    parseStatementX(;)
-                      parseReturnStatement(;)
-                        listener: beginReturnStatement(return)
-                        parseExpression(return)
-                          parsePrecedenceExpression(return, 1, true)
-                            parseUnaryExpression(return, true)
-                              parsePrimary(return, expression)
-                                parseSuperExpression(return, expression)
-                                  listener: handleSuperExpression(super, expression)
-                                  listener: handleNoTypeArguments(()
-                                  parseArguments(super)
-                                    parseArgumentsRest(()
-                                      listener: beginArguments(()
-                                      parseExpression(()
-                                        parsePrecedenceExpression((, 1, true)
-                                          parseUnaryExpression((, true)
-                                            parsePrimary((, expression)
-                                              parseSendOrFunctionLiteral((, expression)
-                                                parseSend((, expression)
-                                                  isNextIdentifier(()
-                                                  ensureIdentifier((, expression)
-                                                    listener: handleIdentifier(x, expression)
-                                                  listener: handleNoTypeArguments(-)
-                                                  parseArgumentsOpt(x)
-                                                    listener: handleNoArguments(-)
-                                                  listener: handleSend(x, -)
-                                          listener: beginBinaryExpression(-)
-                                          parsePrecedenceExpression(-, 14, true)
-                                            parseUnaryExpression(-, true)
-                                              parsePrimary(-, expression)
-                                                parseLiteralInt(-)
-                                                  listener: handleLiteralInt(1)
-                                          listener: endBinaryExpression(-)
-                                      listener: endArguments(1, (, ))
-                                  listener: handleSend(super, +)
-                            listener: beginBinaryExpression(+)
-                            parsePrecedenceExpression(+, 14, true)
-                              parseUnaryExpression(+, true)
-                                parsePrimary(+, expression)
-                                  parseLiteralInt(+)
-                                    listener: handleLiteralInt(1)
-                            listener: endBinaryExpression(+)
-                        ensureSemicolon(1)
-                        listener: endReturnStatement(true, return, ;)
-                        inGenerator()
-                  notEofOrValue(}, })
-                  listener: endBlockFunctionBody(2, {, })
-                listener: endClassMethod(null, int, (, null, })
-              listener: endMember()
+                  parseFunctionBody(), false, true)
+                    listener: beginBlockFunctionBody({)
+                    notEofOrValue(}, if)
+                    parseStatement({)
+                      parseStatementX({)
+                        parseIfStatement({)
+                          listener: beginIfStatement(if)
+                          ensureParenthesizedCondition(if)
+                            parseExpressionInParenthesisRest(()
+                              parseExpression(()
+                                parsePrecedenceExpression((, 1, true)
+                                  parseUnaryExpression((, true)
+                                    parsePrimary((, expression)
+                                      parseSendOrFunctionLiteral((, expression)
+                                        parseSend((, expression)
+                                          isNextIdentifier(()
+                                          ensureIdentifier((, expression)
+                                            listener: handleIdentifier(x, expression)
+                                          listener: handleNoTypeArguments(==)
+                                          parseArgumentsOpt(x)
+                                            listener: handleNoArguments(==)
+                                          listener: handleSend(x, ==)
+                                  listener: beginBinaryExpression(==)
+                                  parsePrecedenceExpression(==, 8, true)
+                                    parseUnaryExpression(==, true)
+                                      parsePrimary(==, expression)
+                                        parseLiteralInt(==)
+                                          listener: handleLiteralInt(0)
+                                  listener: endBinaryExpression(==)
+                              ensureCloseParen(0, ()
+                            listener: handleParenthesizedCondition(()
+                          listener: beginThenStatement(return)
+                          parseStatement())
+                            parseStatementX())
+                              parseReturnStatement())
+                                listener: beginReturnStatement(return)
+                                parseExpression(return)
+                                  parsePrecedenceExpression(return, 1, true)
+                                    parseUnaryExpression(return, true)
+                                      parsePrimary(return, expression)
+                                        parseLiteralInt(return)
+                                          listener: handleLiteralInt(42)
+                                ensureSemicolon(42)
+                                listener: endReturnStatement(true, return, ;)
+                                inGenerator()
+                          listener: endThenStatement(;)
+                          listener: endIfStatement(if, null)
+                    notEofOrValue(}, return)
+                    parseStatement(;)
+                      parseStatementX(;)
+                        parseReturnStatement(;)
+                          listener: beginReturnStatement(return)
+                          parseExpression(return)
+                            parsePrecedenceExpression(return, 1, true)
+                              parseUnaryExpression(return, true)
+                                parsePrimary(return, expression)
+                                  parseSuperExpression(return, expression)
+                                    listener: handleSuperExpression(super, expression)
+                                    listener: handleNoTypeArguments(()
+                                    parseArguments(super)
+                                      parseArgumentsRest(()
+                                        listener: beginArguments(()
+                                        parseExpression(()
+                                          parsePrecedenceExpression((, 1, true)
+                                            parseUnaryExpression((, true)
+                                              parsePrimary((, expression)
+                                                parseSendOrFunctionLiteral((, expression)
+                                                  parseSend((, expression)
+                                                    isNextIdentifier(()
+                                                    ensureIdentifier((, expression)
+                                                      listener: handleIdentifier(x, expression)
+                                                    listener: handleNoTypeArguments(-)
+                                                    parseArgumentsOpt(x)
+                                                      listener: handleNoArguments(-)
+                                                    listener: handleSend(x, -)
+                                            listener: beginBinaryExpression(-)
+                                            parsePrecedenceExpression(-, 14, true)
+                                              parseUnaryExpression(-, true)
+                                                parsePrimary(-, expression)
+                                                  parseLiteralInt(-)
+                                                    listener: handleLiteralInt(1)
+                                            listener: endBinaryExpression(-)
+                                        listener: endArguments(1, (, ))
+                                    listener: handleSend(super, +)
+                              listener: beginBinaryExpression(+)
+                              parsePrecedenceExpression(+, 14, true)
+                                parseUnaryExpression(+, true)
+                                  parsePrimary(+, expression)
+                                    parseLiteralInt(+)
+                                      listener: handleLiteralInt(1)
+                              listener: endBinaryExpression(+)
+                          ensureSemicolon(1)
+                          listener: endReturnStatement(true, return, ;)
+                          inGenerator()
+                    notEofOrValue(}, })
+                    listener: endBlockFunctionBody(2, {, })
+                  listener: endClassMethod(null, , (, null, })
+                listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(}, DeclarationKind.Class, WrapperClass)
               parseMetadataStar(})
@@ -9039,9 +9061,9 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(int, }, null, null, null, null, null, null, }, Instance of 'SimpleType', null, DeclarationKind.Class, WrapperClass)
-                parseFields(}, null, null, null, null, null, null, }, Instance of 'SimpleType', this, DeclarationKind.Class, WrapperClass, false)
-                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, })
+              recoverFromInvalidMember(int, }, null, null, null, null, null, null, null, }, Instance of 'SimpleType', null, DeclarationKind.Class, WrapperClass)
+                parseFields(}, null, null, null, null, null, null, null, }, Instance of 'SimpleType', this, DeclarationKind.Class, WrapperClass, false)
+                  listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, })
                   listener: handleIdentifier(int, typeReference)
                   listener: handleNoTypeArguments(this)
                   listener: handleType(int, null)
@@ -9049,13 +9071,13 @@
                     reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
                       listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
                     listener: handleIdentifier(this, fieldDeclaration)
-                  parseFieldInitializerOpt(this, this, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                  parseFieldInitializerOpt(this, this, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                     listener: handleNoFieldInitializer(()
                   ensureSemicolon(this)
                     reportRecoverableError(this, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
                       listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], this, this)
                     rewriter()
-                  listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                  listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
                 listener: endMember()
             notEofOrValue(}, ()
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -9063,7 +9085,7 @@
                 listener: beginMetadataStar(()
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(;, ;, null, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
+              recoverFromInvalidMember(;, ;, null, null, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, WrapperClass)
                 parseMethod(;, null, null, null, null, null, null, ;, Instance of 'NoType', null, (, DeclarationKind.Class, WrapperClass, false)
                   listener: beginMethod(DeclarationKind.Class, null, null, null, null, null, ()
                   listener: handleNoType(;)
@@ -10766,7 +10788,7 @@
                 listener: endClassMethod(null, int, (, null, })
               listener: endMember()
             notEofOrValue(}, })
-            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 70, {, })
+            listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 71, {, })
           listener: endClassDeclaration(class, })
   listener: endTopLevelDeclaration()
   reportAllErrorTokens(class)
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.parser.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.parser.expect
index 70d958e..5eaa7cd 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.parser.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.parser.expect
@@ -281,7 +281,7 @@
 return static(x-1) + 1;
 }
 
-int super(int x) {
+int super;*synthetic*(int x) {
 if (x == 0) return 42;
 return super(x-1) + 1;
 }
@@ -629,7 +629,7 @@
 return[KeywordToken] static[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
 }[SimpleToken]
 
-int[StringToken] super[KeywordToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+int[StringToken] super[KeywordToken];[SyntheticToken][SyntheticStringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
 if[KeywordToken] ([BeginToken]x[StringToken] ==[SimpleToken] 0[StringToken])[SimpleToken] return[KeywordToken] 42[StringToken];[SimpleToken]
 return[KeywordToken] super[KeywordToken]([BeginToken]x[StringToken]-[SimpleToken]1[StringToken])[SimpleToken] +[SimpleToken] 1[StringToken];[SimpleToken]
 }[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.expect
index 89ea476..a1fd276 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.expect
@@ -796,7 +796,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -819,7 +819,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -844,7 +844,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -872,7 +872,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -897,7 +897,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -925,7 +925,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -953,7 +953,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -976,7 +976,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1001,7 +1001,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1029,7 +1029,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1054,7 +1054,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1082,7 +1082,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1110,7 +1110,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1134,7 +1134,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1160,7 +1160,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1189,7 +1189,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1215,7 +1215,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1244,7 +1244,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1273,7 +1273,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1296,7 +1296,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1321,7 +1321,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1349,7 +1349,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1374,7 +1374,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1402,7 +1402,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1430,7 +1430,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1453,7 +1453,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1478,7 +1478,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1506,7 +1506,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1531,7 +1531,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1559,7 +1559,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1587,7 +1587,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1611,7 +1611,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1637,7 +1637,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1666,7 +1666,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1692,7 +1692,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1721,7 +1721,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1750,7 +1750,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1774,7 +1774,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1800,7 +1800,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1829,7 +1829,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1855,7 +1855,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1884,7 +1884,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1913,7 +1913,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1937,7 +1937,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1963,7 +1963,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1992,7 +1992,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2018,7 +2018,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2047,7 +2047,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2076,7 +2076,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2100,7 +2100,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2126,7 +2126,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2155,7 +2155,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2181,7 +2181,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2210,7 +2210,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2239,7 +2239,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2263,7 +2263,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2289,7 +2289,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2318,7 +2318,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2344,7 +2344,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2373,7 +2373,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2402,7 +2402,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2426,7 +2426,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2452,7 +2452,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2481,7 +2481,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2507,7 +2507,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2536,7 +2536,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2565,7 +2565,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2588,7 +2588,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2613,7 +2613,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2641,7 +2641,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2666,7 +2666,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2694,7 +2694,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2722,7 +2722,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2746,7 +2746,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2772,7 +2772,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2801,7 +2801,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2827,7 +2827,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2856,7 +2856,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2885,7 +2885,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2908,7 +2908,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2933,7 +2933,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2961,7 +2961,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2986,7 +2986,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3014,7 +3014,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3042,7 +3042,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3066,7 +3066,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3092,7 +3092,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3121,7 +3121,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3147,7 +3147,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3176,7 +3176,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3205,7 +3205,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3228,7 +3228,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3253,7 +3253,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3281,7 +3281,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3306,7 +3306,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3334,7 +3334,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3362,7 +3362,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3386,7 +3386,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3412,7 +3412,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3441,7 +3441,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3467,7 +3467,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3496,7 +3496,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3525,7 +3525,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3549,7 +3549,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3575,7 +3575,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3604,7 +3604,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3630,7 +3630,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3659,7 +3659,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3688,7 +3688,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3711,7 +3711,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3736,7 +3736,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3764,7 +3764,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3789,7 +3789,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3817,7 +3817,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3845,7 +3845,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3869,7 +3869,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3895,7 +3895,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3924,7 +3924,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3950,7 +3950,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3979,7 +3979,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4008,7 +4008,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4031,7 +4031,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4056,7 +4056,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4084,7 +4084,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4109,7 +4109,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4137,7 +4137,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4165,7 +4165,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4188,7 +4188,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4213,7 +4213,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4241,7 +4241,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4266,7 +4266,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4294,7 +4294,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4322,7 +4322,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4345,7 +4345,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4370,7 +4370,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4398,7 +4398,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4423,7 +4423,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4451,7 +4451,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4479,7 +4479,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4503,7 +4503,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4529,7 +4529,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4558,7 +4558,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4584,7 +4584,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4613,7 +4613,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4642,7 +4642,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4666,7 +4666,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4692,7 +4692,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4721,7 +4721,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4747,7 +4747,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4776,7 +4776,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4805,7 +4805,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4829,7 +4829,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4855,7 +4855,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4884,7 +4884,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4910,7 +4910,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4939,7 +4939,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4968,7 +4968,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4992,7 +4992,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5018,7 +5018,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5047,7 +5047,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5073,7 +5073,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5102,7 +5102,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5131,7 +5131,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5154,7 +5154,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5179,7 +5179,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5207,7 +5207,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5232,7 +5232,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5260,7 +5260,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5288,7 +5288,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5311,7 +5311,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5336,7 +5336,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5364,7 +5364,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5389,7 +5389,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5417,7 +5417,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5445,7 +5445,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5468,7 +5468,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5493,7 +5493,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5521,7 +5521,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5546,7 +5546,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5574,7 +5574,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5602,7 +5602,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5626,7 +5626,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5652,7 +5652,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5681,7 +5681,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5707,7 +5707,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5736,7 +5736,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5765,7 +5765,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5788,7 +5788,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5813,7 +5813,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5841,7 +5841,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5866,7 +5866,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5894,7 +5894,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5922,7 +5922,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5945,7 +5945,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5970,7 +5970,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5998,7 +5998,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6023,7 +6023,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6051,7 +6051,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6079,7 +6079,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6103,7 +6103,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6129,7 +6129,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6158,7 +6158,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6184,7 +6184,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6213,7 +6213,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6242,7 +6242,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6265,7 +6265,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6290,7 +6290,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6318,7 +6318,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6343,7 +6343,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6371,7 +6371,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6399,7 +6399,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6422,7 +6422,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6447,7 +6447,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6475,7 +6475,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6500,7 +6500,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6528,7 +6528,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6556,7 +6556,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6580,7 +6580,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6606,7 +6606,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6635,7 +6635,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6661,7 +6661,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6690,7 +6690,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6719,7 +6719,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6742,7 +6742,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6767,7 +6767,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6795,7 +6795,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6820,7 +6820,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6848,7 +6848,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6876,7 +6876,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6899,7 +6899,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6924,7 +6924,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6952,7 +6952,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6977,7 +6977,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7005,7 +7005,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7033,7 +7033,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7056,7 +7056,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7081,7 +7081,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7109,7 +7109,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7134,7 +7134,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7162,7 +7162,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7190,7 +7190,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7213,7 +7213,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7238,7 +7238,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7266,7 +7266,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7291,7 +7291,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7319,7 +7319,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7347,7 +7347,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7371,7 +7371,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7397,7 +7397,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7426,7 +7426,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7452,7 +7452,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7481,7 +7481,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7510,7 +7510,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7534,7 +7534,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7560,7 +7560,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7589,7 +7589,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7615,7 +7615,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7644,7 +7644,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7673,7 +7673,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7696,7 +7696,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7721,7 +7721,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7749,7 +7749,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7774,7 +7774,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7802,7 +7802,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7830,7 +7830,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7853,7 +7853,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7878,7 +7878,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7906,7 +7906,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7931,7 +7931,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7959,7 +7959,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7987,7 +7987,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8010,7 +8010,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8035,7 +8035,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8063,7 +8063,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8088,7 +8088,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8116,7 +8116,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8144,7 +8144,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8167,7 +8167,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8192,7 +8192,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8220,7 +8220,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8245,7 +8245,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8273,7 +8273,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8301,7 +8301,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8324,7 +8324,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8349,7 +8349,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8377,7 +8377,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8402,7 +8402,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8430,7 +8430,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8458,7 +8458,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8481,7 +8481,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8506,7 +8506,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8534,7 +8534,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8559,7 +8559,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8587,7 +8587,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8615,7 +8615,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8638,7 +8638,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8663,7 +8663,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8691,7 +8691,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8716,7 +8716,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8744,7 +8744,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8772,7 +8772,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8796,7 +8796,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8822,7 +8822,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8851,7 +8851,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8877,7 +8877,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8906,7 +8906,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8935,7 +8935,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8959,7 +8959,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8985,7 +8985,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9014,7 +9014,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9040,7 +9040,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9069,7 +9069,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9098,7 +9098,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9121,7 +9121,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9146,7 +9146,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9174,7 +9174,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9199,7 +9199,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9227,7 +9227,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9255,7 +9255,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9278,7 +9278,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9303,7 +9303,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9331,7 +9331,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9356,7 +9356,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9384,7 +9384,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9412,7 +9412,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9435,7 +9435,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9460,7 +9460,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9488,7 +9488,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9513,7 +9513,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9541,7 +9541,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9569,7 +9569,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9592,7 +9592,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9617,7 +9617,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9645,7 +9645,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9670,7 +9670,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9698,7 +9698,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9726,7 +9726,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9750,7 +9750,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9776,7 +9776,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9805,7 +9805,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9831,7 +9831,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9860,7 +9860,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9889,7 +9889,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9913,7 +9913,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9939,7 +9939,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9968,7 +9968,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9994,7 +9994,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10023,7 +10023,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10052,7 +10052,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10075,7 +10075,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10100,7 +10100,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10128,7 +10128,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10153,7 +10153,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10181,7 +10181,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10209,7 +10209,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10233,7 +10233,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10259,7 +10259,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10288,7 +10288,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10314,7 +10314,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10343,7 +10343,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10372,7 +10372,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10396,7 +10396,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10422,7 +10422,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10451,7 +10451,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10477,7 +10477,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10506,7 +10506,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10535,7 +10535,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10559,7 +10559,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10585,7 +10585,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10614,7 +10614,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10640,7 +10640,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10669,7 +10669,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10698,7 +10698,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10722,7 +10722,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10748,7 +10748,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10777,7 +10777,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10803,7 +10803,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10832,7 +10832,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10861,7 +10861,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10884,7 +10884,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10909,7 +10909,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10937,7 +10937,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10962,7 +10962,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10990,7 +10990,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11018,7 +11018,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11042,7 +11042,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11068,7 +11068,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11097,7 +11097,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11123,7 +11123,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11152,7 +11152,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11181,7 +11181,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11205,7 +11205,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11231,7 +11231,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11260,7 +11260,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11286,7 +11286,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11315,7 +11315,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11344,7 +11344,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11368,7 +11368,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11394,7 +11394,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11423,7 +11423,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11449,7 +11449,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11478,7 +11478,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11507,7 +11507,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11531,7 +11531,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11557,7 +11557,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11586,7 +11586,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11612,7 +11612,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11641,7 +11641,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11670,7 +11670,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11693,7 +11693,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11718,7 +11718,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11746,7 +11746,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11771,7 +11771,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -11799,7 +11799,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.intertwined.expect
index 251738d..af2dd41 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -48,8 +48,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -92,8 +92,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -144,8 +144,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -188,8 +188,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -240,8 +240,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -292,8 +292,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -332,8 +332,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -376,8 +376,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -428,8 +428,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -472,8 +472,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -524,8 +524,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -576,8 +576,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -617,8 +617,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -662,8 +662,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -715,8 +715,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -760,8 +760,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -813,8 +813,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -866,8 +866,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -906,8 +906,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -950,8 +950,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1002,8 +1002,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1046,8 +1046,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1098,8 +1098,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1150,8 +1150,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1190,8 +1190,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1234,8 +1234,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1286,8 +1286,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1330,8 +1330,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1382,8 +1382,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1434,8 +1434,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1475,8 +1475,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1520,8 +1520,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1573,8 +1573,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1618,8 +1618,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1671,8 +1671,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1724,8 +1724,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1765,8 +1765,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1810,8 +1810,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1863,8 +1863,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1908,8 +1908,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1961,8 +1961,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2014,8 +2014,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2055,8 +2055,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2100,8 +2100,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2153,8 +2153,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2198,8 +2198,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2251,8 +2251,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2304,8 +2304,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2345,8 +2345,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2390,8 +2390,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2443,8 +2443,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2488,8 +2488,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2541,8 +2541,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2594,8 +2594,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2635,8 +2635,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2680,8 +2680,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2733,8 +2733,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2778,8 +2778,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2831,8 +2831,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2884,8 +2884,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2925,8 +2925,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2970,8 +2970,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3023,8 +3023,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3068,8 +3068,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3121,8 +3121,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3174,8 +3174,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3214,8 +3214,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3258,8 +3258,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3310,8 +3310,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3354,8 +3354,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3406,8 +3406,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3458,8 +3458,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3499,8 +3499,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3544,8 +3544,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3597,8 +3597,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3642,8 +3642,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3695,8 +3695,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3748,8 +3748,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3788,8 +3788,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3832,8 +3832,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3884,8 +3884,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3928,8 +3928,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3980,8 +3980,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4032,8 +4032,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4073,8 +4073,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4118,8 +4118,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4171,8 +4171,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4216,8 +4216,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4269,8 +4269,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4322,8 +4322,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4362,8 +4362,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4406,8 +4406,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4458,8 +4458,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4502,8 +4502,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4554,8 +4554,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4606,8 +4606,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4647,8 +4647,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4692,8 +4692,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4745,8 +4745,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4790,8 +4790,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4843,8 +4843,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4896,8 +4896,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4937,8 +4937,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4982,8 +4982,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5035,8 +5035,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5080,8 +5080,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5133,8 +5133,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5186,8 +5186,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5226,8 +5226,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5270,8 +5270,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5322,8 +5322,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5366,8 +5366,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5418,8 +5418,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5470,8 +5470,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5511,8 +5511,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5556,8 +5556,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5609,8 +5609,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5654,8 +5654,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5707,8 +5707,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5760,8 +5760,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5800,8 +5800,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5844,8 +5844,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5896,8 +5896,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5940,8 +5940,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5992,8 +5992,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6044,8 +6044,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6084,8 +6084,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6128,8 +6128,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6180,8 +6180,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6224,8 +6224,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6276,8 +6276,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6328,8 +6328,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6368,8 +6368,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6412,8 +6412,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6464,8 +6464,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6508,8 +6508,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6560,8 +6560,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6612,8 +6612,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6653,8 +6653,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6698,8 +6698,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6751,8 +6751,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6796,8 +6796,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6849,8 +6849,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6902,8 +6902,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6943,8 +6943,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6988,8 +6988,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7041,8 +7041,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7086,8 +7086,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7139,8 +7139,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7192,8 +7192,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7233,8 +7233,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7278,8 +7278,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7331,8 +7331,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7376,8 +7376,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7429,8 +7429,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7482,8 +7482,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7523,8 +7523,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7568,8 +7568,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7621,8 +7621,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7666,8 +7666,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7719,8 +7719,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7772,8 +7772,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7812,8 +7812,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7856,8 +7856,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7908,8 +7908,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7952,8 +7952,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8004,8 +8004,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8056,8 +8056,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8096,8 +8096,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8140,8 +8140,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8192,8 +8192,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8236,8 +8236,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8288,8 +8288,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8340,8 +8340,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8380,8 +8380,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8424,8 +8424,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8476,8 +8476,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8520,8 +8520,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8572,8 +8572,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8624,8 +8624,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8665,8 +8665,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8710,8 +8710,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8763,8 +8763,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8808,8 +8808,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8861,8 +8861,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8914,8 +8914,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8954,8 +8954,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8998,8 +8998,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9050,8 +9050,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9094,8 +9094,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9146,8 +9146,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9198,8 +9198,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9238,8 +9238,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9282,8 +9282,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9334,8 +9334,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9378,8 +9378,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9430,8 +9430,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9482,8 +9482,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9523,8 +9523,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9568,8 +9568,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9621,8 +9621,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9666,8 +9666,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9719,8 +9719,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9772,8 +9772,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9812,8 +9812,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9856,8 +9856,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9908,8 +9908,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9952,8 +9952,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10004,8 +10004,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10056,8 +10056,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10096,8 +10096,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10140,8 +10140,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10192,8 +10192,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10236,8 +10236,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10288,8 +10288,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10340,8 +10340,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10381,8 +10381,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10426,8 +10426,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10479,8 +10479,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10524,8 +10524,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10577,8 +10577,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10630,8 +10630,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10670,8 +10670,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10714,8 +10714,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10766,8 +10766,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10810,8 +10810,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10862,8 +10862,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10914,8 +10914,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10954,8 +10954,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10998,8 +10998,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11050,8 +11050,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11094,8 +11094,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11146,8 +11146,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11198,8 +11198,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11238,8 +11238,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11282,8 +11282,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11334,8 +11334,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11378,8 +11378,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11430,8 +11430,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11482,8 +11482,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11522,8 +11522,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11566,8 +11566,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11618,8 +11618,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11662,8 +11662,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11714,8 +11714,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11766,8 +11766,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11807,8 +11807,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11852,8 +11852,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11905,8 +11905,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11950,8 +11950,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12003,8 +12003,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12056,8 +12056,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12097,8 +12097,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12142,8 +12142,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12195,8 +12195,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12240,8 +12240,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12293,8 +12293,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12346,8 +12346,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12386,8 +12386,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12430,8 +12430,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12482,8 +12482,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12526,8 +12526,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12578,8 +12578,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12630,8 +12630,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12670,8 +12670,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12714,8 +12714,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12766,8 +12766,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12810,8 +12810,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12862,8 +12862,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12914,8 +12914,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12954,8 +12954,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12998,8 +12998,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13050,8 +13050,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13094,8 +13094,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13146,8 +13146,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13198,8 +13198,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13238,8 +13238,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13282,8 +13282,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13334,8 +13334,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13378,8 +13378,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13430,8 +13430,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13482,8 +13482,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13522,8 +13522,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13566,8 +13566,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13618,8 +13618,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13662,8 +13662,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13714,8 +13714,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13766,8 +13766,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13806,8 +13806,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13850,8 +13850,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13902,8 +13902,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13946,8 +13946,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13998,8 +13998,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14050,8 +14050,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14090,8 +14090,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14134,8 +14134,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14186,8 +14186,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14230,8 +14230,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14282,8 +14282,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14334,8 +14334,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14375,8 +14375,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14420,8 +14420,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14473,8 +14473,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14518,8 +14518,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14571,8 +14571,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14624,8 +14624,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14665,8 +14665,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14710,8 +14710,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14763,8 +14763,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14808,8 +14808,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14861,8 +14861,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14914,8 +14914,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14954,8 +14954,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14998,8 +14998,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15050,8 +15050,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15094,8 +15094,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15146,8 +15146,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15198,8 +15198,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15238,8 +15238,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15282,8 +15282,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15334,8 +15334,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15378,8 +15378,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15430,8 +15430,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15482,8 +15482,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15522,8 +15522,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15566,8 +15566,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15618,8 +15618,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15662,8 +15662,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15714,8 +15714,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15766,8 +15766,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15806,8 +15806,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15850,8 +15850,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15902,8 +15902,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15946,8 +15946,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15998,8 +15998,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16050,8 +16050,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16091,8 +16091,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16136,8 +16136,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16189,8 +16189,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16234,8 +16234,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16287,8 +16287,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16340,8 +16340,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16381,8 +16381,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16426,8 +16426,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16479,8 +16479,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16524,8 +16524,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16577,8 +16577,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16630,8 +16630,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16670,8 +16670,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16714,8 +16714,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16766,8 +16766,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16810,8 +16810,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16862,8 +16862,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16914,8 +16914,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16955,8 +16955,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17000,8 +17000,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17053,8 +17053,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17098,8 +17098,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17151,8 +17151,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17204,8 +17204,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17245,8 +17245,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17290,8 +17290,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17343,8 +17343,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17388,8 +17388,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17441,8 +17441,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17494,8 +17494,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17535,8 +17535,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17580,8 +17580,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17633,8 +17633,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17678,8 +17678,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17731,8 +17731,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17784,8 +17784,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17825,8 +17825,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17870,8 +17870,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17923,8 +17923,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17968,8 +17968,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18021,8 +18021,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18074,8 +18074,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18114,8 +18114,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18158,8 +18158,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18210,8 +18210,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18254,8 +18254,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18306,8 +18306,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18358,8 +18358,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18399,8 +18399,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18444,8 +18444,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18497,8 +18497,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18542,8 +18542,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18595,8 +18595,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18648,8 +18648,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18689,8 +18689,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18734,8 +18734,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18787,8 +18787,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18832,8 +18832,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18885,8 +18885,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18938,8 +18938,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18979,8 +18979,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19024,8 +19024,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19077,8 +19077,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19122,8 +19122,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19175,8 +19175,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19228,8 +19228,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19269,8 +19269,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19314,8 +19314,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19367,8 +19367,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19412,8 +19412,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19465,8 +19465,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19518,8 +19518,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19558,8 +19558,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19602,8 +19602,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19654,8 +19654,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19698,8 +19698,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19750,8 +19750,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.expect
index 402c2ea..e3ca5ec 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -25,7 +25,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -50,7 +50,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -78,7 +78,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -103,7 +103,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -131,7 +131,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -159,7 +159,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -182,7 +182,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -207,7 +207,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -235,7 +235,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -260,7 +260,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -288,7 +288,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -316,7 +316,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -339,7 +339,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -364,7 +364,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -392,7 +392,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -417,7 +417,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -445,7 +445,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -473,7 +473,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -496,7 +496,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -521,7 +521,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -549,7 +549,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -574,7 +574,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -602,7 +602,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -630,7 +630,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -653,7 +653,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -678,7 +678,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -706,7 +706,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -731,7 +731,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -759,7 +759,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -787,7 +787,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -810,7 +810,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -835,7 +835,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -863,7 +863,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -888,7 +888,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -916,7 +916,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -944,7 +944,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -967,7 +967,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -992,7 +992,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1020,7 +1020,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1045,7 +1045,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1073,7 +1073,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1101,7 +1101,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1124,7 +1124,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1149,7 +1149,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1177,7 +1177,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1202,7 +1202,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1230,7 +1230,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1258,7 +1258,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1281,7 +1281,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1306,7 +1306,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1334,7 +1334,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1359,7 +1359,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1387,7 +1387,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1415,7 +1415,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1438,7 +1438,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1463,7 +1463,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1491,7 +1491,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1516,7 +1516,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1544,7 +1544,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1572,7 +1572,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1595,7 +1595,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1620,7 +1620,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1648,7 +1648,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1673,7 +1673,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1701,7 +1701,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1729,7 +1729,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1752,7 +1752,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1777,7 +1777,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1805,7 +1805,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1830,7 +1830,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1858,7 +1858,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1886,7 +1886,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1909,7 +1909,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1934,7 +1934,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1962,7 +1962,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -1987,7 +1987,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2015,7 +2015,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2043,7 +2043,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2066,7 +2066,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2091,7 +2091,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2119,7 +2119,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2144,7 +2144,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2172,7 +2172,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2200,7 +2200,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2223,7 +2223,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2248,7 +2248,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2276,7 +2276,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2301,7 +2301,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2329,7 +2329,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2357,7 +2357,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2380,7 +2380,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2405,7 +2405,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2433,7 +2433,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2458,7 +2458,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2486,7 +2486,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2514,7 +2514,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2537,7 +2537,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2562,7 +2562,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2590,7 +2590,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2615,7 +2615,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2643,7 +2643,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2671,7 +2671,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2694,7 +2694,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2719,7 +2719,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2747,7 +2747,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2772,7 +2772,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2800,7 +2800,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2828,7 +2828,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2851,7 +2851,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2876,7 +2876,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2904,7 +2904,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2929,7 +2929,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2957,7 +2957,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -2985,7 +2985,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3008,7 +3008,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3033,7 +3033,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3061,7 +3061,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3086,7 +3086,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3114,7 +3114,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3142,7 +3142,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3165,7 +3165,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3190,7 +3190,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3218,7 +3218,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3243,7 +3243,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3271,7 +3271,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3299,7 +3299,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3322,7 +3322,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3347,7 +3347,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3375,7 +3375,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3400,7 +3400,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3428,7 +3428,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3456,7 +3456,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3479,7 +3479,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3504,7 +3504,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3532,7 +3532,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3557,7 +3557,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3585,7 +3585,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3613,7 +3613,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3636,7 +3636,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3661,7 +3661,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3689,7 +3689,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3714,7 +3714,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3742,7 +3742,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3770,7 +3770,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3793,7 +3793,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3818,7 +3818,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3846,7 +3846,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3871,7 +3871,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3899,7 +3899,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3927,7 +3927,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3950,7 +3950,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -3975,7 +3975,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4003,7 +4003,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4028,7 +4028,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4056,7 +4056,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4084,7 +4084,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4107,7 +4107,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4132,7 +4132,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4160,7 +4160,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4185,7 +4185,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4213,7 +4213,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4241,7 +4241,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4264,7 +4264,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4289,7 +4289,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4317,7 +4317,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4342,7 +4342,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4370,7 +4370,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4398,7 +4398,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4421,7 +4421,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4446,7 +4446,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4474,7 +4474,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4499,7 +4499,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4527,7 +4527,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4555,7 +4555,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4578,7 +4578,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4603,7 +4603,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4631,7 +4631,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4656,7 +4656,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4684,7 +4684,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4712,7 +4712,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4735,7 +4735,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4760,7 +4760,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4788,7 +4788,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4813,7 +4813,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4841,7 +4841,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4869,7 +4869,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4892,7 +4892,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4917,7 +4917,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4945,7 +4945,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4970,7 +4970,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -4998,7 +4998,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5026,7 +5026,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5049,7 +5049,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5074,7 +5074,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5102,7 +5102,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5127,7 +5127,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5155,7 +5155,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5183,7 +5183,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5206,7 +5206,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5231,7 +5231,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5259,7 +5259,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5284,7 +5284,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5312,7 +5312,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5340,7 +5340,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5363,7 +5363,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5388,7 +5388,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5416,7 +5416,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5441,7 +5441,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5469,7 +5469,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5497,7 +5497,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5520,7 +5520,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5545,7 +5545,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5573,7 +5573,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5598,7 +5598,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5626,7 +5626,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5654,7 +5654,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5677,7 +5677,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5702,7 +5702,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5730,7 +5730,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5755,7 +5755,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5783,7 +5783,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5811,7 +5811,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5834,7 +5834,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5859,7 +5859,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5887,7 +5887,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5912,7 +5912,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5940,7 +5940,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5968,7 +5968,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -5991,7 +5991,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6016,7 +6016,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6044,7 +6044,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6069,7 +6069,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6097,7 +6097,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6125,7 +6125,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6148,7 +6148,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6173,7 +6173,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6201,7 +6201,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6226,7 +6226,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6254,7 +6254,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6282,7 +6282,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6305,7 +6305,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6330,7 +6330,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6358,7 +6358,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6383,7 +6383,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6411,7 +6411,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6439,7 +6439,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6462,7 +6462,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6487,7 +6487,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6515,7 +6515,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6540,7 +6540,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6568,7 +6568,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6596,7 +6596,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6619,7 +6619,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6644,7 +6644,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6672,7 +6672,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6697,7 +6697,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6725,7 +6725,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6753,7 +6753,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6776,7 +6776,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6801,7 +6801,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6829,7 +6829,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6854,7 +6854,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6882,7 +6882,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6910,7 +6910,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6933,7 +6933,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6958,7 +6958,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -6986,7 +6986,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7011,7 +7011,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7039,7 +7039,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7067,7 +7067,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7090,7 +7090,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7115,7 +7115,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7143,7 +7143,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7168,7 +7168,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7196,7 +7196,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7224,7 +7224,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7247,7 +7247,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7272,7 +7272,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7300,7 +7300,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7325,7 +7325,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7353,7 +7353,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7381,7 +7381,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7404,7 +7404,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7429,7 +7429,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7457,7 +7457,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7482,7 +7482,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7510,7 +7510,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7538,7 +7538,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7561,7 +7561,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7586,7 +7586,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7614,7 +7614,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7639,7 +7639,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7667,7 +7667,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7695,7 +7695,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7718,7 +7718,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7743,7 +7743,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7771,7 +7771,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7796,7 +7796,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7824,7 +7824,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7852,7 +7852,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7875,7 +7875,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7900,7 +7900,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7928,7 +7928,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7953,7 +7953,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -7981,7 +7981,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8009,7 +8009,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8032,7 +8032,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8057,7 +8057,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8085,7 +8085,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8110,7 +8110,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8138,7 +8138,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8166,7 +8166,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8189,7 +8189,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8214,7 +8214,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8242,7 +8242,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8267,7 +8267,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8295,7 +8295,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8323,7 +8323,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8346,7 +8346,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8371,7 +8371,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8399,7 +8399,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8424,7 +8424,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8452,7 +8452,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8480,7 +8480,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8503,7 +8503,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8528,7 +8528,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8556,7 +8556,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8581,7 +8581,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8609,7 +8609,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8637,7 +8637,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8660,7 +8660,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8685,7 +8685,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8713,7 +8713,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8738,7 +8738,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8766,7 +8766,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8794,7 +8794,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8817,7 +8817,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8842,7 +8842,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8870,7 +8870,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8895,7 +8895,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8923,7 +8923,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8951,7 +8951,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8974,7 +8974,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -8999,7 +8999,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9027,7 +9027,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9052,7 +9052,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9080,7 +9080,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9108,7 +9108,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9131,7 +9131,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9156,7 +9156,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9184,7 +9184,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9209,7 +9209,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9237,7 +9237,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9265,7 +9265,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9288,7 +9288,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9313,7 +9313,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9341,7 +9341,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9366,7 +9366,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9394,7 +9394,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9422,7 +9422,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9445,7 +9445,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9470,7 +9470,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9498,7 +9498,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9523,7 +9523,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9551,7 +9551,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9579,7 +9579,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9602,7 +9602,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9627,7 +9627,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9655,7 +9655,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9680,7 +9680,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9708,7 +9708,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9736,7 +9736,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9759,7 +9759,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9784,7 +9784,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9812,7 +9812,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9837,7 +9837,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9865,7 +9865,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9893,7 +9893,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9916,7 +9916,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9941,7 +9941,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9969,7 +9969,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -9994,7 +9994,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10022,7 +10022,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10050,7 +10050,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10073,7 +10073,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10098,7 +10098,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10126,7 +10126,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10151,7 +10151,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10179,7 +10179,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10207,7 +10207,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10230,7 +10230,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10255,7 +10255,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10283,7 +10283,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10308,7 +10308,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10336,7 +10336,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10364,7 +10364,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10387,7 +10387,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10412,7 +10412,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10440,7 +10440,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10465,7 +10465,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10493,7 +10493,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10521,7 +10521,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10544,7 +10544,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10569,7 +10569,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10597,7 +10597,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10622,7 +10622,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10650,7 +10650,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10678,7 +10678,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10701,7 +10701,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10726,7 +10726,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10754,7 +10754,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10779,7 +10779,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -10807,7 +10807,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.intertwined.expect
index 639e26d..ce4b7a3 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_prime.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -47,8 +47,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -90,8 +90,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -141,8 +141,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -184,8 +184,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -235,8 +235,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -286,8 +286,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -325,8 +325,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -368,8 +368,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -419,8 +419,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -462,8 +462,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -513,8 +513,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -564,8 +564,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -603,8 +603,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -646,8 +646,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -697,8 +697,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -740,8 +740,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -791,8 +791,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -842,8 +842,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -881,8 +881,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -924,8 +924,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -975,8 +975,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1018,8 +1018,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1069,8 +1069,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1120,8 +1120,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1159,8 +1159,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1202,8 +1202,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1253,8 +1253,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1296,8 +1296,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1347,8 +1347,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1398,8 +1398,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1437,8 +1437,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1480,8 +1480,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1531,8 +1531,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1574,8 +1574,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1625,8 +1625,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1676,8 +1676,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1715,8 +1715,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1758,8 +1758,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1809,8 +1809,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1852,8 +1852,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1903,8 +1903,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1954,8 +1954,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -1993,8 +1993,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2036,8 +2036,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2087,8 +2087,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2130,8 +2130,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2181,8 +2181,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2232,8 +2232,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2271,8 +2271,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2314,8 +2314,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2365,8 +2365,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2408,8 +2408,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2459,8 +2459,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2510,8 +2510,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2549,8 +2549,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2592,8 +2592,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2643,8 +2643,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2686,8 +2686,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2737,8 +2737,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2788,8 +2788,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2827,8 +2827,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2870,8 +2870,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2921,8 +2921,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -2964,8 +2964,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3015,8 +3015,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3066,8 +3066,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3105,8 +3105,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3148,8 +3148,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3199,8 +3199,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3242,8 +3242,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3293,8 +3293,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3344,8 +3344,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3383,8 +3383,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3426,8 +3426,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3477,8 +3477,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3520,8 +3520,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3571,8 +3571,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3622,8 +3622,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3661,8 +3661,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3704,8 +3704,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3755,8 +3755,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3798,8 +3798,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3849,8 +3849,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3900,8 +3900,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3939,8 +3939,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -3982,8 +3982,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4033,8 +4033,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4076,8 +4076,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4127,8 +4127,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4178,8 +4178,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4217,8 +4217,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4260,8 +4260,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4311,8 +4311,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4354,8 +4354,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4405,8 +4405,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4456,8 +4456,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4495,8 +4495,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4538,8 +4538,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4589,8 +4589,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4632,8 +4632,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4683,8 +4683,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4734,8 +4734,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4773,8 +4773,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4816,8 +4816,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4867,8 +4867,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4910,8 +4910,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -4961,8 +4961,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5012,8 +5012,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5051,8 +5051,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5094,8 +5094,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5145,8 +5145,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5188,8 +5188,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5239,8 +5239,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5290,8 +5290,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5329,8 +5329,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5372,8 +5372,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5423,8 +5423,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5466,8 +5466,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5517,8 +5517,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5568,8 +5568,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5607,8 +5607,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5650,8 +5650,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5701,8 +5701,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5744,8 +5744,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5795,8 +5795,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5846,8 +5846,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5885,8 +5885,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5928,8 +5928,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -5979,8 +5979,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6022,8 +6022,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6073,8 +6073,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6124,8 +6124,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6163,8 +6163,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6206,8 +6206,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6257,8 +6257,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6300,8 +6300,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6351,8 +6351,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6402,8 +6402,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6441,8 +6441,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6484,8 +6484,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6535,8 +6535,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6578,8 +6578,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6629,8 +6629,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6680,8 +6680,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6719,8 +6719,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6762,8 +6762,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6813,8 +6813,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6856,8 +6856,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6907,8 +6907,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6958,8 +6958,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -6997,8 +6997,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7040,8 +7040,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7091,8 +7091,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7134,8 +7134,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7185,8 +7185,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7236,8 +7236,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7275,8 +7275,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7318,8 +7318,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7369,8 +7369,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7412,8 +7412,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7463,8 +7463,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7514,8 +7514,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7553,8 +7553,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7596,8 +7596,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7647,8 +7647,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7690,8 +7690,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7741,8 +7741,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7792,8 +7792,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7831,8 +7831,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7874,8 +7874,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7925,8 +7925,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -7968,8 +7968,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8019,8 +8019,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8070,8 +8070,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8109,8 +8109,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8152,8 +8152,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8203,8 +8203,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8246,8 +8246,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8297,8 +8297,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8348,8 +8348,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8387,8 +8387,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8430,8 +8430,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8481,8 +8481,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8524,8 +8524,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8575,8 +8575,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8626,8 +8626,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8665,8 +8665,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8708,8 +8708,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8759,8 +8759,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8802,8 +8802,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8853,8 +8853,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8904,8 +8904,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8943,8 +8943,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -8986,8 +8986,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9037,8 +9037,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9080,8 +9080,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9131,8 +9131,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9182,8 +9182,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9221,8 +9221,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9264,8 +9264,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9315,8 +9315,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9358,8 +9358,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9409,8 +9409,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9460,8 +9460,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9499,8 +9499,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9542,8 +9542,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9593,8 +9593,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9636,8 +9636,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9687,8 +9687,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9738,8 +9738,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9777,8 +9777,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9820,8 +9820,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9871,8 +9871,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9914,8 +9914,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -9965,8 +9965,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10016,8 +10016,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10055,8 +10055,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10098,8 +10098,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10149,8 +10149,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10192,8 +10192,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10243,8 +10243,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10294,8 +10294,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10333,8 +10333,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10376,8 +10376,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10427,8 +10427,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10470,8 +10470,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10521,8 +10521,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10572,8 +10572,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10611,8 +10611,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10654,8 +10654,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10705,8 +10705,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10748,8 +10748,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10799,8 +10799,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10850,8 +10850,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10889,8 +10889,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10932,8 +10932,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -10983,8 +10983,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11026,8 +11026,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11077,8 +11077,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11128,8 +11128,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11167,8 +11167,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11210,8 +11210,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11261,8 +11261,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11304,8 +11304,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11355,8 +11355,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11406,8 +11406,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11445,8 +11445,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11488,8 +11488,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11539,8 +11539,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11582,8 +11582,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11633,8 +11633,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11684,8 +11684,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11723,8 +11723,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11766,8 +11766,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11817,8 +11817,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11860,8 +11860,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11911,8 +11911,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -11962,8 +11962,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12001,8 +12001,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12044,8 +12044,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12095,8 +12095,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12138,8 +12138,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12189,8 +12189,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12240,8 +12240,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12279,8 +12279,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12322,8 +12322,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12373,8 +12373,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12416,8 +12416,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12467,8 +12467,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12518,8 +12518,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12557,8 +12557,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12600,8 +12600,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12651,8 +12651,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12694,8 +12694,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12745,8 +12745,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12796,8 +12796,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12835,8 +12835,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12878,8 +12878,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12929,8 +12929,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -12972,8 +12972,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13023,8 +13023,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13074,8 +13074,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13113,8 +13113,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13156,8 +13156,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13207,8 +13207,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13250,8 +13250,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13301,8 +13301,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13352,8 +13352,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13391,8 +13391,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13434,8 +13434,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13485,8 +13485,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13528,8 +13528,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13579,8 +13579,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13630,8 +13630,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13669,8 +13669,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13712,8 +13712,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13763,8 +13763,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13806,8 +13806,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13857,8 +13857,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13908,8 +13908,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13947,8 +13947,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -13990,8 +13990,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14041,8 +14041,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14084,8 +14084,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14135,8 +14135,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14186,8 +14186,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14225,8 +14225,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14268,8 +14268,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14319,8 +14319,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14362,8 +14362,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14413,8 +14413,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14464,8 +14464,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14503,8 +14503,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14546,8 +14546,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14597,8 +14597,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14640,8 +14640,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14691,8 +14691,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14742,8 +14742,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14781,8 +14781,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14824,8 +14824,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14875,8 +14875,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14918,8 +14918,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -14969,8 +14969,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15020,8 +15020,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15059,8 +15059,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15102,8 +15102,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15153,8 +15153,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15196,8 +15196,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15247,8 +15247,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15298,8 +15298,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15337,8 +15337,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15380,8 +15380,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15431,8 +15431,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15474,8 +15474,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15525,8 +15525,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15576,8 +15576,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15615,8 +15615,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15658,8 +15658,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15709,8 +15709,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15752,8 +15752,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15803,8 +15803,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15854,8 +15854,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15893,8 +15893,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15936,8 +15936,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -15987,8 +15987,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16030,8 +16030,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16081,8 +16081,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16132,8 +16132,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16171,8 +16171,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16214,8 +16214,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16265,8 +16265,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16308,8 +16308,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16359,8 +16359,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16410,8 +16410,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16449,8 +16449,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16492,8 +16492,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16543,8 +16543,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16586,8 +16586,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16637,8 +16637,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16688,8 +16688,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16727,8 +16727,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16770,8 +16770,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16821,8 +16821,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16864,8 +16864,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16915,8 +16915,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -16966,8 +16966,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17005,8 +17005,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17048,8 +17048,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17099,8 +17099,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17142,8 +17142,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17193,8 +17193,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17244,8 +17244,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17283,8 +17283,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17326,8 +17326,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17377,8 +17377,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17420,8 +17420,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17471,8 +17471,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17522,8 +17522,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17561,8 +17561,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17604,8 +17604,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17655,8 +17655,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17698,8 +17698,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17749,8 +17749,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17800,8 +17800,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17839,8 +17839,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17882,8 +17882,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17933,8 +17933,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -17976,8 +17976,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18027,8 +18027,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18078,8 +18078,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18117,8 +18117,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18160,8 +18160,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18211,8 +18211,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18254,8 +18254,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18305,8 +18305,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18356,8 +18356,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18395,8 +18395,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18438,8 +18438,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18489,8 +18489,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18532,8 +18532,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18583,8 +18583,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18634,8 +18634,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18673,8 +18673,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18716,8 +18716,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18767,8 +18767,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18810,8 +18810,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18861,8 +18861,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18912,8 +18912,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18951,8 +18951,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -18994,8 +18994,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19045,8 +19045,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19088,8 +19088,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
@@ -19139,8 +19139,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.expect
index 678fa33..3867cc6 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.expect
@@ -12,7 +12,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(UnmatchedToken((), null)
+    beginTopLevelMethod(UnmatchedToken((), null, null)
       handleNoType(UnmatchedToken(())
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.intertwined.expect
index 2c4030a..1a5f237 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_formal_parameter_start_of_next_top_level.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl(UnmatchedToken(())
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(UnmatchedToken((), null, UnmatchedToken((), Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(UnmatchedToken((), null)
+      parseTopLevelMethod(UnmatchedToken((), null, null, UnmatchedToken((), Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(UnmatchedToken((), null, null)
         listener: handleNoType(UnmatchedToken(())
         ensureIdentifierPotentiallyRecovered(UnmatchedToken((), topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
@@ -49,8 +49,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_fields.dart.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_fields.dart.expect
index 8221f5c..ed9be4d 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_fields.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_fields.dart.expect
@@ -136,7 +136,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(abstract)
       handleType(int, null)
@@ -149,7 +149,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(as)
       handleType(int, null)
@@ -162,7 +162,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(assert)
       handleType(int, null)
@@ -176,7 +176,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(async)
       handleType(int, null)
@@ -189,7 +189,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(await)
       handleType(int, null)
@@ -202,7 +202,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(break)
       handleType(int, null)
@@ -216,7 +216,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(case)
       handleType(int, null)
@@ -230,7 +230,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(catch)
       handleType(int, null)
@@ -244,7 +244,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(class)
       handleType(int, null)
@@ -258,7 +258,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(const)
       handleType(int, null)
@@ -272,7 +272,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(continue)
       handleType(int, null)
@@ -286,7 +286,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(covariant)
       handleType(int, null)
@@ -299,7 +299,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(default)
       handleType(int, null)
@@ -313,7 +313,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(deferred)
       handleType(int, null)
@@ -326,7 +326,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(do)
       handleType(int, null)
@@ -340,7 +340,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(dynamic)
       handleType(int, null)
@@ -353,7 +353,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(else)
       handleType(int, null)
@@ -367,7 +367,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(enum)
       handleType(int, null)
@@ -381,7 +381,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(export)
       handleType(int, null)
@@ -394,7 +394,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(extends)
       handleType(int, null)
@@ -408,7 +408,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(extension)
       handleType(int, null)
@@ -421,7 +421,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(external)
       handleType(int, null)
@@ -434,7 +434,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(factory)
       handleType(int, null)
@@ -447,7 +447,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(false)
       handleType(int, null)
@@ -461,7 +461,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(final)
       handleType(int, null)
@@ -475,7 +475,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(finally)
       handleType(int, null)
@@ -489,7 +489,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(for)
       handleType(int, null)
@@ -503,7 +503,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(Function)
       handleType(int, null)
@@ -516,7 +516,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(get)
       handleType(int, null)
@@ -529,7 +529,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(hide)
       handleType(int, null)
@@ -542,7 +542,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(if)
       handleType(int, null)
@@ -556,7 +556,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(implements)
       handleType(int, null)
@@ -569,7 +569,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(import)
       handleType(int, null)
@@ -582,7 +582,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(in)
       handleType(int, null)
@@ -596,7 +596,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(inout)
       handleType(int, null)
@@ -609,7 +609,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(interface)
       handleType(int, null)
@@ -622,7 +622,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(is)
       handleType(int, null)
@@ -636,7 +636,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(late)
       handleType(int, null)
@@ -649,7 +649,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(library)
       handleType(int, null)
@@ -662,7 +662,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(mixin)
       handleType(int, null)
@@ -675,7 +675,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(native)
       handleType(int, null)
@@ -688,7 +688,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(new)
       handleType(int, null)
@@ -702,7 +702,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(null)
       handleType(int, null)
@@ -716,7 +716,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(of)
       handleType(int, null)
@@ -729,7 +729,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(on)
       handleType(int, null)
@@ -742,7 +742,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(operator)
       handleType(int, null)
@@ -755,7 +755,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(out)
       handleType(int, null)
@@ -768,7 +768,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(part)
       handleType(int, null)
@@ -781,7 +781,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(patch)
       handleType(int, null)
@@ -794,7 +794,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(required)
       handleType(int, null)
@@ -807,7 +807,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(rethrow)
       handleType(int, null)
@@ -821,7 +821,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(return)
       handleType(int, null)
@@ -835,7 +835,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(set)
       handleType(int, null)
@@ -848,7 +848,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(show)
       handleType(int, null)
@@ -861,7 +861,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(source)
       handleType(int, null)
@@ -874,7 +874,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(static)
       handleType(int, null)
@@ -887,7 +887,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(super)
       handleType(int, null)
@@ -901,7 +901,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(switch)
       handleType(int, null)
@@ -915,7 +915,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(sync)
       handleType(int, null)
@@ -928,7 +928,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(this)
       handleType(int, null)
@@ -942,7 +942,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(throw)
       handleType(int, null)
@@ -956,7 +956,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(true)
       handleType(int, null)
@@ -970,7 +970,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(try)
       handleType(int, null)
@@ -984,7 +984,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(typedef)
       handleType(int, null)
@@ -997,7 +997,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(var)
       handleType(int, null)
@@ -1011,7 +1011,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(void)
       handleType(int, null)
@@ -1025,7 +1025,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(while)
       handleType(int, null)
@@ -1039,7 +1039,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(with)
       handleType(int, null)
@@ -1053,7 +1053,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(yield)
       handleType(int, null)
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_fields.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_fields.dart.intertwined.expect
index b2228b8..8d0fc89 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_fields.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_fields.dart.intertwined.expect
@@ -8,14 +8,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(int)
-      parseFields(, null, null, null, null, null, null, , Instance of 'SimpleType', abstract, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+      parseFields(, null, null, null, null, null, null, null, , Instance of 'SimpleType', abstract, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(abstract)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(abstract, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(abstract, abstract, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(abstract, abstract, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -32,14 +32,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', as, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', as, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(as)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(as, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(as, as, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(as, as, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -58,8 +58,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(assert)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', assert, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', assert, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(assert)
         listener: handleType(int, null)
@@ -67,7 +67,7 @@
           reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
           listener: handleIdentifier(assert, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(assert, assert, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(assert, assert, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -84,14 +84,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', async, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', async, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(async)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(async, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(async, async, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(async, async, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -108,14 +108,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', await, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', await, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(await)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(await, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(await, await, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(await, await, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -134,8 +134,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(break)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', break, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', break, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(break)
         listener: handleType(int, null)
@@ -143,7 +143,7 @@
           reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
           listener: handleIdentifier(break, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(break, break, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(break, break, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -162,8 +162,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(case)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', case, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', case, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(case)
         listener: handleType(int, null)
@@ -171,7 +171,7 @@
           reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
           listener: handleIdentifier(case, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(case, case, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(case, case, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -190,8 +190,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(catch)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', catch, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', catch, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(catch)
         listener: handleType(int, null)
@@ -199,7 +199,7 @@
           reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
           listener: handleIdentifier(catch, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(catch, catch, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(catch, catch, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -218,8 +218,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(class)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', class, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', class, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(class)
         listener: handleType(int, null)
@@ -227,7 +227,7 @@
           reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
           listener: handleIdentifier(class, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(class, class, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(class, class, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -246,8 +246,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(const)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', const, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', const, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(const)
         listener: handleType(int, null)
@@ -255,7 +255,7 @@
           reportRecoverableErrorWithToken(const, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
           listener: handleIdentifier(const, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(const, const, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(const, const, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -274,8 +274,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(continue)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', continue, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', continue, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(continue)
         listener: handleType(int, null)
@@ -283,7 +283,7 @@
           reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
           listener: handleIdentifier(continue, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(continue, continue, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(continue, continue, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -300,14 +300,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', covariant, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', covariant, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(covariant)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(covariant, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(covariant, covariant, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(covariant, covariant, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -326,8 +326,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(default)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', default, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', default, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(default)
         listener: handleType(int, null)
@@ -335,7 +335,7 @@
           reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
           listener: handleIdentifier(default, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(default, default, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(default, default, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -352,14 +352,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', deferred, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', deferred, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(deferred)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(deferred, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(deferred, deferred, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(deferred, deferred, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -378,8 +378,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(do)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', do, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', do, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(do)
         listener: handleType(int, null)
@@ -387,7 +387,7 @@
           reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
           listener: handleIdentifier(do, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(do, do, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(do, do, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -404,14 +404,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', dynamic, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', dynamic, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(dynamic)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(dynamic, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(dynamic, dynamic, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(dynamic, dynamic, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -430,8 +430,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(else)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', else, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', else, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(else)
         listener: handleType(int, null)
@@ -439,7 +439,7 @@
           reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
           listener: handleIdentifier(else, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(else, else, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(else, else, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -458,8 +458,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(enum)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', enum, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', enum, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(enum)
         listener: handleType(int, null)
@@ -467,7 +467,7 @@
           reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
           listener: handleIdentifier(enum, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(enum, enum, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(enum, enum, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -484,14 +484,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', export, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', export, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(export)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(export, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(export, export, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(export, export, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -510,8 +510,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(extends)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', extends, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', extends, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(extends)
         listener: handleType(int, null)
@@ -519,7 +519,7 @@
           reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
           listener: handleIdentifier(extends, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(extends, extends, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(extends, extends, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -536,14 +536,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', extension, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', extension, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(extension)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(extension, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(extension, extension, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(extension, extension, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -560,14 +560,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', external, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', external, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(external)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(external, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(external, external, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(external, external, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -584,14 +584,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', factory, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', factory, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(factory)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(factory, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(factory, factory, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(factory, factory, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -610,8 +610,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(false)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', false, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', false, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(false)
         listener: handleType(int, null)
@@ -619,7 +619,7 @@
           reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
           listener: handleIdentifier(false, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(false, false, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(false, false, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -638,8 +638,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(final)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', final, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', final, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(final)
         listener: handleType(int, null)
@@ -647,7 +647,7 @@
           reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
           listener: handleIdentifier(final, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(final, final, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(final, final, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -666,8 +666,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(finally)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', finally, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', finally, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(finally)
         listener: handleType(int, null)
@@ -675,7 +675,7 @@
           reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
           listener: handleIdentifier(finally, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(finally, finally, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(finally, finally, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -694,8 +694,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(for)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', for, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', for, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(for)
         listener: handleType(int, null)
@@ -703,7 +703,7 @@
           reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
           listener: handleIdentifier(for, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(for, for, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(for, for, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -720,14 +720,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', Function, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', Function, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(Function)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(Function, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(Function, Function, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(Function, Function, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -744,14 +744,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', get, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', get, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(get)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(get, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(get, get, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(get, get, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -768,14 +768,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', hide, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', hide, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(hide)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(hide, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(hide, hide, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(hide, hide, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -794,8 +794,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(if)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', if, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', if, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(if)
         listener: handleType(int, null)
@@ -803,7 +803,7 @@
           reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
           listener: handleIdentifier(if, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(if, if, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(if, if, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -820,14 +820,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', implements, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', implements, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(implements)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(implements, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(implements, implements, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(implements, implements, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -844,14 +844,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', import, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', import, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(import)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(import, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(import, import, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(import, import, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -870,8 +870,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(in)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', in, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', in, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(in)
         listener: handleType(int, null)
@@ -879,7 +879,7 @@
           reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
           listener: handleIdentifier(in, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(in, in, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(in, in, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -896,14 +896,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', inout, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', inout, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(inout)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(inout, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(inout, inout, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(inout, inout, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -920,14 +920,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', interface, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', interface, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(interface)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(interface, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(interface, interface, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(interface, interface, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -946,8 +946,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(is)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', is, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', is, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(is)
         listener: handleType(int, null)
@@ -955,7 +955,7 @@
           reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
           listener: handleIdentifier(is, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(is, is, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(is, is, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -972,14 +972,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', late, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', late, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(late)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(late, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(late, late, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(late, late, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -996,14 +996,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', library, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', library, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(library)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(library, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(library, library, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(library, library, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1020,14 +1020,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', mixin, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', mixin, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(mixin)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(mixin, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(mixin, mixin, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(mixin, mixin, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1044,14 +1044,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', native, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', native, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(native)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(native, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(native, native, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(native, native, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1070,8 +1070,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(new)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', new, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', new, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(new)
         listener: handleType(int, null)
@@ -1079,7 +1079,7 @@
           reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
           listener: handleIdentifier(new, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(new, new, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(new, new, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1098,8 +1098,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(null)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', null, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', null, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(null)
         listener: handleType(int, null)
@@ -1107,7 +1107,7 @@
           reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
           listener: handleIdentifier(null, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(null, null, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(null, null, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1124,14 +1124,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', of, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', of, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(of)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(of, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(of, of, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(of, of, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1148,14 +1148,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', on, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', on, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(on)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(on, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(on, on, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(on, on, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1172,14 +1172,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', operator, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', operator, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(operator)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operator, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operator, operator, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operator, operator, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1196,14 +1196,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', out, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', out, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(out)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(out, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(out, out, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(out, out, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1220,14 +1220,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', part, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', part, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(part)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(part, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(part, part, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(part, part, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1244,14 +1244,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', patch, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', patch, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(patch)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(patch, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(patch, patch, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(patch, patch, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1268,14 +1268,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', required, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', required, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(required)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(required, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(required, required, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(required, required, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1294,8 +1294,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(rethrow)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', rethrow, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', rethrow, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(rethrow)
         listener: handleType(int, null)
@@ -1303,7 +1303,7 @@
           reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
           listener: handleIdentifier(rethrow, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(rethrow, rethrow, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(rethrow, rethrow, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1322,8 +1322,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(return)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', return, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', return, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(return)
         listener: handleType(int, null)
@@ -1331,7 +1331,7 @@
           reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
           listener: handleIdentifier(return, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(return, return, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(return, return, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1348,14 +1348,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', set, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', set, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(set)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(set, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(set, set, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(set, set, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1372,14 +1372,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', show, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', show, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(show)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(show, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(show, show, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(show, show, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1396,14 +1396,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', source, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', source, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(source)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(source, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(source, source, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(source, source, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1420,14 +1420,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', static, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', static, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(static)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(static, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(static, static, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(static, static, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1444,18 +1444,16 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      isReservedKeyword(super)
-      indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', super, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', super, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(super)
         listener: handleType(int, null)
-        ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
+        ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
           listener: handleIdentifier(super, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(super, super, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(super, super, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1474,8 +1472,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(switch)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', switch, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', switch, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(switch)
         listener: handleType(int, null)
@@ -1483,7 +1481,7 @@
           reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
           listener: handleIdentifier(switch, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(switch, switch, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(switch, switch, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1500,14 +1498,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', sync, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', sync, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(sync)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(sync, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(sync, sync, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(sync, sync, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1524,8 +1522,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', this, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', this, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(this)
         listener: handleType(int, null)
@@ -1533,7 +1531,7 @@
           reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
           listener: handleIdentifier(this, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(this, this, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(this, this, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1552,8 +1550,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(throw)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', throw, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', throw, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(throw)
         listener: handleType(int, null)
@@ -1561,7 +1559,7 @@
           reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
           listener: handleIdentifier(throw, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(throw, throw, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(throw, throw, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1580,8 +1578,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(true)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', true, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', true, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(true)
         listener: handleType(int, null)
@@ -1589,7 +1587,7 @@
           reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
           listener: handleIdentifier(true, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(true, true, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(true, true, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1608,8 +1606,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(try)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', try, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', try, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(try)
         listener: handleType(int, null)
@@ -1617,7 +1615,7 @@
           reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
           listener: handleIdentifier(try, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(try, try, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(try, try, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1634,14 +1632,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', typedef, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', typedef, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(typedef)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(typedef, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(typedef, typedef, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(typedef, typedef, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1660,8 +1658,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(var)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', var, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', var, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(var)
         listener: handleType(int, null)
@@ -1669,7 +1667,7 @@
           reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
           listener: handleIdentifier(var, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(var, var, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(var, var, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1688,8 +1686,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(void)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', void, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', void, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(void)
         listener: handleType(int, null)
@@ -1697,7 +1695,7 @@
           reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
           listener: handleIdentifier(void, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(void, void, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(void, void, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1716,8 +1714,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(while)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', while, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', while, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(while)
         listener: handleType(int, null)
@@ -1725,7 +1723,7 @@
           reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
           listener: handleIdentifier(while, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(while, while, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(while, while, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1744,8 +1742,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(with)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', with, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', with, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(with)
         listener: handleType(int, null)
@@ -1753,7 +1751,7 @@
           reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
           listener: handleIdentifier(with, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(with, with, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(with, with, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1770,14 +1768,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', yield, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', yield, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(yield)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(yield, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(yield, yield, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(yield, yield, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_methods.dart.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_methods.dart.expect
index 8734745..bd52e60 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_methods.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_methods.dart.expect
@@ -468,7 +468,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(abstract)
       handleType(int, null)
@@ -525,7 +525,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(as)
       handleType(int, null)
@@ -582,7 +582,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(assert)
       handleType(int, null)
@@ -638,7 +638,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(async)
       handleType(int, null)
@@ -695,7 +695,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(await)
       handleType(int, null)
@@ -752,7 +752,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(break)
       handleType(int, null)
@@ -816,7 +816,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(case)
       handleType(int, null)
@@ -875,7 +875,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(catch)
       handleType(int, null)
@@ -934,7 +934,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(class)
       handleType(int, null)
@@ -993,7 +993,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(const)
       handleType(int, null)
@@ -1056,7 +1056,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(continue)
       handleType(int, null)
@@ -1120,7 +1120,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(covariant)
       handleType(int, null)
@@ -1177,7 +1177,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(default)
       handleType(int, null)
@@ -1236,7 +1236,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(deferred)
       handleType(int, null)
@@ -1293,7 +1293,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(do)
       handleType(int, null)
@@ -1367,7 +1367,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(dynamic)
       handleType(int, null)
@@ -1424,7 +1424,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(else)
       handleType(int, null)
@@ -1493,7 +1493,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(enum)
       handleType(int, null)
@@ -1552,7 +1552,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(export)
       handleType(int, null)
@@ -1609,7 +1609,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(extends)
       handleType(int, null)
@@ -1668,7 +1668,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(extension)
       handleType(int, null)
@@ -1725,7 +1725,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(external)
       handleType(int, null)
@@ -1782,7 +1782,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(factory)
       handleType(int, null)
@@ -1839,7 +1839,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(false)
       handleType(int, null)
@@ -1897,7 +1897,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(final)
       handleType(int, null)
@@ -1983,7 +1983,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(finally)
       handleType(int, null)
@@ -2042,7 +2042,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(for)
       handleType(int, null)
@@ -2121,7 +2121,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(Function)
       handleType(int, null)
@@ -2178,7 +2178,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(get)
       handleType(int, null)
@@ -2235,7 +2235,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(hide)
       handleType(int, null)
@@ -2292,7 +2292,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(if)
       handleType(int, null)
@@ -2362,7 +2362,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(implements)
       handleType(int, null)
@@ -2419,7 +2419,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(import)
       handleType(int, null)
@@ -2476,7 +2476,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(in)
       handleType(int, null)
@@ -2535,7 +2535,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(inout)
       handleType(int, null)
@@ -2592,7 +2592,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(interface)
       handleType(int, null)
@@ -2649,7 +2649,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(is)
       handleType(int, null)
@@ -2717,7 +2717,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(late)
       handleType(int, null)
@@ -2774,7 +2774,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(library)
       handleType(int, null)
@@ -2831,7 +2831,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(mixin)
       handleType(int, null)
@@ -2888,7 +2888,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(native)
       handleType(int, null)
@@ -2945,7 +2945,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(new)
       handleType(int, null)
@@ -3008,7 +3008,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(null)
       handleType(int, null)
@@ -3066,7 +3066,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(of)
       handleType(int, null)
@@ -3123,7 +3123,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(on)
       handleType(int, null)
@@ -3180,7 +3180,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(operator)
       handleType(int, null)
@@ -3237,7 +3237,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(out)
       handleType(int, null)
@@ -3294,7 +3294,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(part)
       handleType(int, null)
@@ -3351,7 +3351,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(patch)
       handleType(int, null)
@@ -3408,7 +3408,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(required)
       handleType(int, null)
@@ -3465,7 +3465,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(rethrow)
       handleType(int, null)
@@ -3524,7 +3524,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(return)
       handleType(int, null)
@@ -3579,7 +3579,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(set)
       handleType(int, null)
@@ -3636,7 +3636,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(show)
       handleType(int, null)
@@ -3693,7 +3693,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(source)
       handleType(int, null)
@@ -3750,7 +3750,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(static)
       handleType(int, null)
@@ -3807,7 +3807,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(super)
       handleType(int, null)
@@ -3865,7 +3865,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(switch)
       handleType(int, null)
@@ -3936,7 +3936,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(sync)
       handleType(int, null)
@@ -3993,7 +3993,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(this)
       handleType(int, null)
@@ -4051,7 +4051,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(throw)
       handleType(int, null)
@@ -4106,7 +4106,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(true)
       handleType(int, null)
@@ -4164,7 +4164,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(try)
       handleType(int, null)
@@ -4231,7 +4231,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(typedef)
       handleType(int, null)
@@ -4288,7 +4288,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(var)
       handleType(int, null)
@@ -4374,7 +4374,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(void)
       handleType(int, null)
@@ -4460,7 +4460,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(while)
       handleType(int, null)
@@ -4530,7 +4530,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(with)
       handleType(int, null)
@@ -4589,7 +4589,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(yield)
       handleType(int, null)
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_methods.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_methods.dart.intertwined.expect
index 385ad93..21af54c 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_methods.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_methods.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(, null, , Instance of 'SimpleType', null, abstract, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'SimpleType', null, abstract, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(abstract)
         listener: handleType(int, null)
@@ -148,8 +148,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, as, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, as, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(as)
         listener: handleType(int, null)
@@ -290,8 +290,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(assert)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, assert, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, assert, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(assert)
         listener: handleType(int, null)
@@ -423,8 +423,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, async, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, async, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(async)
         listener: handleType(int, null)
@@ -563,8 +563,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, await, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, await, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(await)
         listener: handleType(int, null)
@@ -708,8 +708,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(break)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, break, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, break, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(break)
         listener: handleType(int, null)
@@ -883,8 +883,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(case)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, case, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, case, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(case)
         listener: handleType(int, null)
@@ -1026,8 +1026,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(catch)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, catch, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, catch, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(catch)
         listener: handleType(int, null)
@@ -1169,8 +1169,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(class)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, class, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, class, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(class)
         listener: handleType(int, null)
@@ -1312,8 +1312,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(const)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, const, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, const, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(const)
         listener: handleType(int, null)
@@ -1460,8 +1460,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(continue)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, continue, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, continue, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(continue)
         listener: handleType(int, null)
@@ -1633,8 +1633,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, covariant, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, covariant, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(covariant)
         listener: handleType(int, null)
@@ -1775,8 +1775,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(default)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, default, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, default, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(default)
         listener: handleType(int, null)
@@ -1916,8 +1916,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, deferred, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, deferred, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(deferred)
         listener: handleType(int, null)
@@ -2058,8 +2058,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(do)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, do, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, do, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(do)
         listener: handleType(int, null)
@@ -2255,8 +2255,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, dynamic, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, dynamic, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(dynamic)
         listener: handleType(int, null)
@@ -2397,8 +2397,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(else)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, else, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, else, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(else)
         listener: handleType(int, null)
@@ -2590,8 +2590,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(enum)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, enum, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, enum, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(enum)
         listener: handleType(int, null)
@@ -2731,8 +2731,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, export, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, export, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(export)
         listener: handleType(int, null)
@@ -2873,8 +2873,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(extends)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, extends, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, extends, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(extends)
         listener: handleType(int, null)
@@ -3014,8 +3014,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, extension, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, extension, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(extension)
         listener: handleType(int, null)
@@ -3154,8 +3154,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, external, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, external, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(external)
         listener: handleType(int, null)
@@ -3294,8 +3294,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, factory, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, factory, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(factory)
         listener: handleType(int, null)
@@ -3436,8 +3436,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(false)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, false, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, false, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(false)
         listener: handleType(int, null)
@@ -3574,8 +3574,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(final)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, final, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, final, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(final)
         listener: handleType(int, null)
@@ -3809,8 +3809,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(finally)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, finally, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, finally, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(finally)
         listener: handleType(int, null)
@@ -3952,8 +3952,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(for)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, for, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, for, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(for)
         listener: handleType(int, null)
@@ -4160,8 +4160,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, Function, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, Function, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(Function)
         listener: handleType(int, null)
@@ -4300,8 +4300,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, get, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, get, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(get)
         listener: handleType(int, null)
@@ -4440,8 +4440,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, hide, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, hide, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(hide)
         listener: handleType(int, null)
@@ -4582,8 +4582,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(if)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, if, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, if, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(if)
         listener: handleType(int, null)
@@ -4761,8 +4761,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, implements, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, implements, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(implements)
         listener: handleType(int, null)
@@ -4901,8 +4901,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, import, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, import, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(import)
         listener: handleType(int, null)
@@ -5043,8 +5043,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(in)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, in, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, in, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(in)
         listener: handleType(int, null)
@@ -5184,8 +5184,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, inout, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, inout, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(inout)
         listener: handleType(int, null)
@@ -5324,8 +5324,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, interface, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, interface, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(interface)
         listener: handleType(int, null)
@@ -5466,8 +5466,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(is)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, is, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, is, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(is)
         listener: handleType(int, null)
@@ -5639,8 +5639,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, late, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, late, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(late)
         listener: handleType(int, null)
@@ -5779,8 +5779,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, library, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, library, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(library)
         listener: handleType(int, null)
@@ -5919,8 +5919,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, mixin, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, mixin, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(mixin)
         listener: handleType(int, null)
@@ -6059,8 +6059,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, native, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, native, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(native)
         listener: handleType(int, null)
@@ -6201,8 +6201,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(new)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, new, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, new, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(new)
         listener: handleType(int, null)
@@ -6350,8 +6350,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(null)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, null, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, null, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(null)
         listener: handleType(int, null)
@@ -6486,8 +6486,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, of, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, of, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(of)
         listener: handleType(int, null)
@@ -6626,8 +6626,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, on, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, on, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(on)
         listener: handleType(int, null)
@@ -6766,8 +6766,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, operator, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, operator, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(operator)
         listener: handleType(int, null)
@@ -6906,8 +6906,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, out, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, out, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(out)
         listener: handleType(int, null)
@@ -7046,8 +7046,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, part, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, part, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(part)
         listener: handleType(int, null)
@@ -7186,8 +7186,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, patch, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, patch, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(patch)
         listener: handleType(int, null)
@@ -7326,8 +7326,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, required, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, required, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(required)
         listener: handleType(int, null)
@@ -7468,8 +7468,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(rethrow)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, rethrow, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, rethrow, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(rethrow)
         listener: handleType(int, null)
@@ -7611,8 +7611,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(return)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, return, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, return, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(return)
         listener: handleType(int, null)
@@ -7748,8 +7748,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, set, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, set, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(set)
         listener: handleType(int, null)
@@ -7888,8 +7888,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, show, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, show, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(show)
         listener: handleType(int, null)
@@ -8028,8 +8028,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, source, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, source, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(source)
         listener: handleType(int, null)
@@ -8168,8 +8168,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, static, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, static, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(static)
         listener: handleType(int, null)
@@ -8308,14 +8308,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      isReservedKeyword(super)
-      indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, super, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, super, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(super)
         listener: handleType(int, null)
-        ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
+        ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, false)
           reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
           listener: handleIdentifier(super, topLevelFunctionDeclaration)
@@ -8447,8 +8445,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(switch)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, switch, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, switch, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(switch)
         listener: handleType(int, null)
@@ -8635,8 +8633,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, sync, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, sync, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(sync)
         listener: handleType(int, null)
@@ -8775,8 +8773,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, this, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, this, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(this)
         listener: handleType(int, null)
@@ -8912,8 +8910,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(throw)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, throw, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, throw, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(throw)
         listener: handleType(int, null)
@@ -9050,8 +9048,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(true)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, true, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, true, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(true)
         listener: handleType(int, null)
@@ -9188,8 +9186,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(try)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, try, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, try, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(try)
         listener: handleType(int, null)
@@ -9367,8 +9365,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, typedef, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, typedef, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(typedef)
         listener: handleType(int, null)
@@ -9509,8 +9507,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(var)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, var, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, var, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(var)
         listener: handleType(int, null)
@@ -9744,8 +9742,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(void)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, void, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, void, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(void)
         listener: handleType(int, null)
@@ -9980,8 +9978,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(while)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, while, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, while, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(while)
         listener: handleType(int, null)
@@ -10161,8 +10159,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(with)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, with, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, with, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(with)
         listener: handleType(int, null)
@@ -10302,8 +10300,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, yield, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, yield, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(yield)
         listener: handleType(int, null)
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_typedefs.dart.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_typedefs.dart.expect
index f39ac71..953f7ba 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_typedefs.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_typedefs.dart.expect
@@ -2231,7 +2231,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(=, null)
+    beginTopLevelMethod(=, null, null)
       handleVoidKeyword(void)
       handleIdentifier(Function, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_typedefs.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_typedefs.dart.intertwined.expect
index 9f13282..01e1ecf 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_typedefs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_typedefs.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(, typedef)
+    parseTopLevelKeywordDeclaration(, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -28,8 +27,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -53,8 +51,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -75,8 +72,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -100,8 +96,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -122,8 +117,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -147,8 +141,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -167,8 +160,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -190,8 +182,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -210,8 +201,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -233,8 +223,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -255,8 +244,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -280,8 +268,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -302,8 +289,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -327,8 +313,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -349,8 +334,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -374,8 +358,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -396,8 +379,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -421,8 +403,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -443,8 +424,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -468,8 +448,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -490,8 +469,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -515,8 +493,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -537,8 +514,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -562,8 +538,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -584,8 +559,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -609,8 +583,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -631,8 +604,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -656,8 +628,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -678,8 +649,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -703,8 +673,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -725,8 +694,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -750,8 +718,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -772,8 +739,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -797,8 +763,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -819,8 +784,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -844,8 +808,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -866,8 +829,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -891,8 +853,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -913,8 +874,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -938,8 +898,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -960,8 +919,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -985,8 +943,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1007,8 +964,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1032,8 +988,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1054,8 +1009,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1079,8 +1033,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1101,8 +1054,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1126,8 +1078,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1148,8 +1099,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1173,8 +1123,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1195,8 +1144,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1220,8 +1168,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1242,8 +1189,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1267,8 +1213,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1289,8 +1234,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1314,8 +1258,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1336,8 +1279,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1361,8 +1303,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1381,8 +1322,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1404,8 +1344,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1426,8 +1365,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1451,8 +1389,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1473,8 +1410,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1498,8 +1434,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1520,8 +1455,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1545,8 +1479,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1567,8 +1500,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1592,8 +1524,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1612,8 +1543,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1635,8 +1565,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1657,8 +1586,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1682,8 +1610,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1704,8 +1631,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1729,8 +1655,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1751,8 +1676,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1776,8 +1700,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1798,8 +1721,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1823,8 +1745,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1845,8 +1766,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1870,8 +1790,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1890,8 +1809,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1913,8 +1831,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1935,8 +1852,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1960,8 +1876,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1982,8 +1897,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2007,8 +1921,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2027,8 +1940,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2050,8 +1962,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2070,8 +1981,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2093,8 +2003,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2115,8 +2024,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2140,8 +2048,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2160,8 +2067,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2183,8 +2089,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2205,8 +2110,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2230,8 +2134,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2250,8 +2153,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2273,8 +2175,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2295,8 +2196,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2320,8 +2220,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2342,8 +2241,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2367,8 +2265,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2389,8 +2286,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2414,8 +2310,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2436,8 +2331,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2461,8 +2355,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2481,8 +2374,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2504,8 +2396,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2524,8 +2415,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2547,8 +2437,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2569,8 +2458,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2594,8 +2482,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2616,8 +2503,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2641,8 +2527,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2663,8 +2548,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2688,8 +2572,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2708,8 +2591,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2731,8 +2613,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2753,8 +2634,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2778,8 +2658,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2800,8 +2679,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2825,8 +2703,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2847,8 +2724,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2872,8 +2748,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2894,8 +2769,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2919,8 +2793,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2941,8 +2814,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2966,8 +2838,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -2988,8 +2859,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -3013,8 +2883,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -3035,8 +2904,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -3078,8 +2946,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(=)
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(=, null, =, Instance of 'VoidType', null, Function, false)
-        listener: beginTopLevelMethod(=, null)
+      parseTopLevelMethod(=, null, null, =, Instance of 'VoidType', null, Function, false)
+        listener: beginTopLevelMethod(=, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(Function, topLevelFunctionDeclaration)
@@ -3103,8 +2971,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -3125,8 +2992,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -3150,8 +3016,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -3172,8 +3037,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -3197,8 +3061,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -3217,8 +3080,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.expect b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.expect
index c39b30f..12b6dd3 100644
--- a/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.expect
@@ -58,7 +58,7 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(with)
             handleType(int, null)
@@ -67,7 +67,7 @@
             beginFieldInitializer(=)
               handleLiteralInt(7)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
@@ -117,7 +117,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(with)
       handleType(int, null)
@@ -134,7 +134,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(with)
       handleType(int, null)
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.intertwined.expect
index b0a3a8c..e9bd679 100644
--- a/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -78,8 +77,8 @@
               listener: beginMember()
               isReservedKeyword(with)
               indicatesMethodOrField(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', with, DeclarationKind.Class, C, true)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', with, DeclarationKind.Class, C, true)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(with)
                 listener: handleType(int, null)
@@ -87,7 +86,7 @@
                   reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
                     listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
                   listener: handleIdentifier(with, fieldDeclaration)
-                parseFieldInitializerOpt(with, with, null, null, null, null, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(with, with, null, null, null, null, null, DeclarationKind.Class, C)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -96,7 +95,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(7)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -198,8 +197,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(with)
       indicatesMethodOrField(()
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, with, true)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, with, true)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(with)
         listener: handleType(int, null)
@@ -238,8 +237,8 @@
       listener: beginTopLevelMember(int)
       isReservedKeyword(with)
       indicatesMethodOrField(=)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', with, DeclarationKind.TopLevel, null, true)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', with, DeclarationKind.TopLevel, null, true)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(with)
         listener: handleType(int, null)
@@ -247,7 +246,7 @@
           reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
             listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
           listener: handleIdentifier(with, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(with, with, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(with, with, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.expect b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.expect
index 10aff81..d232122 100644
--- a/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.expect
@@ -31,7 +31,7 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(With)
             handleType(int, null)
@@ -39,7 +39,7 @@
             beginFieldInitializer(=)
               handleLiteralInt(7)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
@@ -87,7 +87,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(With)
       handleType(int, null)
@@ -103,7 +103,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(With)
       handleType(int, null)
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.intertwined.expect
index 5288b66..c4703fa 100644
--- a/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -72,14 +71,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', With, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', With, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(With)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(With, fieldDeclaration)
-                parseFieldInitializerOpt(With, With, null, null, null, null, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(With, With, null, null, null, null, null, DeclarationKind.Class, C)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -88,7 +87,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(7)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -180,8 +179,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, With, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, With, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(With)
         listener: handleType(int, null)
@@ -216,14 +215,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', With, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', With, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(With)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(With, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(With, With, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(With, With, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime2.dart.expect b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime2.dart.expect
index 62126ec..afef61e 100644
--- a/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime2.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime2.dart.expect
@@ -39,7 +39,7 @@
   beginMetadataStar(foo)
   endMetadataStar(0)
   beginTopLevelMember(foo)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, })
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, })
       handleRecoverableError(MissingConstFinalVarOrType, foo, foo)
       handleNoType(})
       handleIdentifier(foo, topLevelVariableDeclaration)
@@ -62,13 +62,13 @@
         beginMetadataStar(foo)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleRecoverableError(MissingConstFinalVarOrType, foo, foo)
             handleNoType({)
             handleIdentifier(foo, fieldDeclaration)
             handleNoFieldInitializer(class)
             handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], foo, foo)
-          endClassFields(null, null, null, null, null, null, 1, foo, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, foo, ;)
         endMember()
         beginMetadataStar(class)
         endMetadataStar(0)
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime2.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime2.dart.intertwined.expect
index abde46a..8d8ff43 100644
--- a/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime2.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with_prime2.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -38,14 +37,14 @@
       listener: beginTopLevelMember(foo)
       isReservedKeyword(class)
       indicatesMethodOrField(M1)
-      parseFields(}, null, null, null, null, null, null, }, Instance of 'NoType', foo, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, })
+      parseFields(}, null, null, null, null, null, null, null, }, Instance of 'NoType', foo, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, })
         reportRecoverableError(foo, MissingConstFinalVarOrType)
           listener: handleRecoverableError(MissingConstFinalVarOrType, foo, foo)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelVariableDeclaration, false)
           listener: handleIdentifier(foo, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(foo, foo, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(foo, foo, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(class)
         ensureSemicolon(foo)
           reportRecoverableError(foo, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -57,8 +56,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -85,20 +83,20 @@
               listener: beginMember()
               isReservedKeyword(class)
               indicatesMethodOrField(M2)
-              parseFields({, null, null, null, null, null, null, {, Instance of 'NoType', foo, DeclarationKind.Class, M1, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              parseFields({, null, null, null, null, null, null, null, {, Instance of 'NoType', foo, DeclarationKind.Class, M1, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                 reportRecoverableError(foo, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, foo, foo)
                 listener: handleNoType({)
                 ensureIdentifierPotentiallyRecovered({, fieldDeclaration, false)
                   listener: handleIdentifier(foo, fieldDeclaration)
-                parseFieldInitializerOpt(foo, foo, null, null, null, null, DeclarationKind.Class, M1)
+                parseFieldInitializerOpt(foo, foo, null, null, null, null, null, DeclarationKind.Class, M1)
                   listener: handleNoFieldInitializer(class)
                 ensureSemicolon(foo)
                   reportRecoverableError(foo, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
                     listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], foo, foo)
                   rewriter()
-                listener: endClassFields(null, null, null, null, null, null, 1, foo, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, foo, ;)
               listener: endMember()
             notEofOrValue(}, class)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, M1)
@@ -106,7 +104,7 @@
                 listener: beginMetadataStar(class)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(;, ;, null, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, M1)
+              recoverFromInvalidMember(;, ;, null, null, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, M1)
                 reportAndSkipClassInClass(class)
                   reportRecoverableError(class, ClassInClass)
                     listener: handleRecoverableError(ClassInClass, class, class)
diff --git a/pkg/front_end/parser_testcases/error_recovery/symbols.dart.expect b/pkg/front_end/parser_testcases/error_recovery/symbols.dart.expect
index 0e96030..423eb50 100644
--- a/pkg/front_end/parser_testcases/error_recovery/symbols.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/symbols.dart.expect
@@ -392,7 +392,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/symbols.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/symbols.dart.intertwined.expect
index 8db03b1..50019dd 100644
--- a/pkg/front_end/parser_testcases/error_recovery/symbols.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/symbols.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/utf_16_le_content.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/utf_16_le_content.crash_dart.expect
index 7790834..3af857b 100644
--- a/pkg/front_end/parser_testcases/error_recovery/utf_16_le_content.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/utf_16_le_content.crash_dart.expect
Binary files differ
diff --git a/pkg/front_end/parser_testcases/error_recovery/utf_16_le_content.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/utf_16_le_content.crash_dart.intertwined.expect
index d506c5a..a2da381 100644
--- a/pkg/front_end/parser_testcases/error_recovery/utf_16_le_content.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/utf_16_le_content.crash_dart.intertwined.expect
@@ -28,14 +28,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(/)
       listener: beginTopLevelMember(C)
-      parseFields(/, null, null, null, null, null, null, /, Instance of 'SimpleType', o, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, /)
+      parseFields(/, null, null, null, null, null, null, null, /, Instance of 'SimpleType', o, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, /)
         listener: handleIdentifier(C, typeReference)
         listener: handleNoTypeArguments(o)
         listener: handleType(C, null)
         ensureIdentifierPotentiallyRecovered(C, topLevelVariableDeclaration, false)
           listener: handleIdentifier(o, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(o, o, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(o, o, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(p)
         ensureSemicolon(o)
           reportRecoverableError(o, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -49,14 +49,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(p)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', y, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', y, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(p, typeReference)
         listener: handleNoTypeArguments(y)
         listener: handleType(p, null)
         ensureIdentifierPotentiallyRecovered(p, topLevelVariableDeclaration, false)
           listener: handleIdentifier(y, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(y, y, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(y, y, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(r)
         ensureSemicolon(y)
           reportRecoverableError(y, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -70,14 +70,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(r)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(r, typeReference)
         listener: handleNoTypeArguments(i)
         listener: handleType(r, null)
         ensureIdentifierPotentiallyRecovered(r, topLevelVariableDeclaration, false)
           listener: handleIdentifier(i, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(i, i, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(i, i, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(g)
         ensureSemicolon(i)
           reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -91,14 +91,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(g)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(g, typeReference)
         listener: handleNoTypeArguments(h)
         listener: handleType(g, null)
         ensureIdentifierPotentiallyRecovered(g, topLevelVariableDeclaration, false)
           listener: handleIdentifier(h, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(h, h, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(h, h, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(t)
         ensureSemicolon(h)
           reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -113,8 +113,8 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(t)
       isReservedKeyword(()
-      parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, t, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'NoType', null, t, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleNoType(;)
         ensureIdentifierPotentiallyRecovered(;, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(t, topLevelFunctionDeclaration)
@@ -204,14 +204,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(,)
       listener: beginTopLevelMember(t)
-      parseFields(,, null, null, null, null, null, null, ,, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ,)
+      parseFields(,, null, null, null, null, null, null, null, ,, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ,)
         listener: handleIdentifier(t, typeReference)
         listener: handleNoTypeArguments(h)
         listener: handleType(t, null)
         ensureIdentifierPotentiallyRecovered(t, topLevelVariableDeclaration, false)
           listener: handleIdentifier(h, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(h, h, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(h, h, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(e)
         ensureSemicolon(h)
           reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -225,14 +225,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', D, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', D, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(D)
         listener: handleType(e, null)
         ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
           listener: handleIdentifier(D, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(D, D, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(D, D, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(a)
         ensureSemicolon(D)
           reportRecoverableError(D, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -246,14 +246,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(a)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(a, typeReference)
         listener: handleNoTypeArguments(r)
         listener: handleType(a, null)
         ensureIdentifierPotentiallyRecovered(a, topLevelVariableDeclaration, false)
           listener: handleIdentifier(r, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(r, r, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(r, r, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(t)
         ensureSemicolon(r)
           reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -267,14 +267,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(t)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', p, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', p, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(t, typeReference)
         listener: handleNoTypeArguments(p)
         listener: handleType(t, null)
         ensureIdentifierPotentiallyRecovered(t, topLevelVariableDeclaration, false)
           listener: handleIdentifier(p, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(p, p, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(p, p, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(r)
         ensureSemicolon(p)
           reportRecoverableError(p, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -288,14 +288,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(r)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', o, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', o, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(r, typeReference)
         listener: handleNoTypeArguments(o)
         listener: handleType(r, null)
         ensureIdentifierPotentiallyRecovered(r, topLevelVariableDeclaration, false)
           listener: handleIdentifier(o, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(o, o, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(o, o, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(j)
         ensureSemicolon(o)
           reportRecoverableError(o, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -309,14 +309,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(j)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(j, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(j, null)
         ensureIdentifierPotentiallyRecovered(j, topLevelVariableDeclaration, false)
           listener: handleIdentifier(e, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(e, e, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(c)
         ensureSemicolon(e)
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -330,14 +330,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(c)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(c, typeReference)
         listener: handleNoTypeArguments(t)
         listener: handleType(c, null)
         ensureIdentifierPotentiallyRecovered(c, topLevelVariableDeclaration, false)
           listener: handleIdentifier(t, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(t, t, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(t, t, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(a)
         ensureSemicolon(t)
           reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -351,14 +351,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(a)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', u, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', u, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(a, typeReference)
         listener: handleNoTypeArguments(u)
         listener: handleType(a, null)
         ensureIdentifierPotentiallyRecovered(a, topLevelVariableDeclaration, false)
           listener: handleIdentifier(u, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(u, u, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(u, u, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(t)
         ensureSemicolon(u)
           reportRecoverableError(u, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -372,14 +372,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(t)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(t, typeReference)
         listener: handleNoTypeArguments(h)
         listener: handleType(t, null)
         ensureIdentifierPotentiallyRecovered(t, topLevelVariableDeclaration, false)
           listener: handleIdentifier(h, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(h, h, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(h, h, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(o)
         ensureSemicolon(h)
           reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -393,14 +393,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(o)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(o, typeReference)
         listener: handleNoTypeArguments(r)
         listener: handleType(o, null)
         ensureIdentifierPotentiallyRecovered(o, topLevelVariableDeclaration, false)
           listener: handleIdentifier(r, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(r, r, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(r, r, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(s)
         ensureSemicolon(r)
           reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -414,8 +414,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'PrefixedType', l, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'PrefixedType', l, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(s, prefixedTypeReference)
         listener: handleIdentifier(P, typeReferenceContinuation)
         listener: handleQualified(.)
@@ -423,7 +423,7 @@
         listener: handleType(s, null)
         ensureIdentifierPotentiallyRecovered(P, topLevelVariableDeclaration, false)
           listener: handleIdentifier(l, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(l, l, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(l, l, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(e)
         ensureSemicolon(l)
           reportRecoverableError(l, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -437,14 +437,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(a)
         listener: handleType(e, null)
         ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
           listener: handleIdentifier(a, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(a, a, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(a, a, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(s)
         ensureSemicolon(a)
           reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -458,14 +458,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(s, null)
         ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
           listener: handleIdentifier(e, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(e, e, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(s)
         ensureSemicolon(e)
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -479,14 +479,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(s, null)
         ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
           listener: handleIdentifier(e, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(e, e, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(e)
         ensureSemicolon(e)
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -500,14 +500,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(t)
         listener: handleType(e, null)
         ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
           listener: handleIdentifier(t, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(t, t, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(t, t, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(h)
         ensureSemicolon(t)
           reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -521,14 +521,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(h)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(h, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(h, null)
         ensureIdentifierPotentiallyRecovered(h, topLevelVariableDeclaration, false)
           listener: handleIdentifier(e, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(e, e, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(A)
         ensureSemicolon(e)
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -542,14 +542,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(A)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', U, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', U, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(A, typeReference)
         listener: handleNoTypeArguments(U)
         listener: handleType(A, null)
         ensureIdentifierPotentiallyRecovered(A, topLevelVariableDeclaration, false)
           listener: handleIdentifier(U, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(U, U, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(U, U, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(T)
         ensureSemicolon(U)
           reportRecoverableError(U, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -563,14 +563,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(T)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', H, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', H, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(T, typeReference)
         listener: handleNoTypeArguments(H)
         listener: handleType(T, null)
         ensureIdentifierPotentiallyRecovered(T, topLevelVariableDeclaration, false)
           listener: handleIdentifier(H, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(H, H, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(H, H, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(O)
         ensureSemicolon(H)
           reportRecoverableError(H, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -584,14 +584,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(O)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', R, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', R, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(O, typeReference)
         listener: handleNoTypeArguments(R)
         listener: handleType(O, null)
         ensureIdentifierPotentiallyRecovered(O, topLevelVariableDeclaration, false)
           listener: handleIdentifier(R, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(R, R, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(R, R, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(S)
         ensureSemicolon(R)
           reportRecoverableError(R, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -605,14 +605,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(S)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', f, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', f, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(S, typeReference)
         listener: handleNoTypeArguments(f)
         listener: handleType(S, null)
         ensureIdentifierPotentiallyRecovered(S, topLevelVariableDeclaration, false)
           listener: handleIdentifier(f, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(f, f, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(f, f, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(i)
         ensureSemicolon(f)
           reportRecoverableError(f, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -626,14 +626,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(i)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', l, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', l, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(i, typeReference)
         listener: handleNoTypeArguments(l)
         listener: handleType(i, null)
         ensureIdentifierPotentiallyRecovered(i, topLevelVariableDeclaration, false)
           listener: handleIdentifier(l, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(l, l, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(l, l, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(e)
         ensureSemicolon(l)
           reportRecoverableError(l, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -648,14 +648,14 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
       isReservedKeyword(/)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'NoType', e, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'NoType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         reportRecoverableError(e, MissingConstFinalVarOrType)
           listener: handleRecoverableError(MissingConstFinalVarOrType, e, e)
         listener: handleNoType(;)
         ensureIdentifierPotentiallyRecovered(;, topLevelVariableDeclaration, false)
           listener: handleIdentifier(e, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(e, e, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(/)
         ensureSemicolon(e)
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -689,14 +689,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(/)
       listener: beginTopLevelMember(f)
-      parseFields(/, null, null, null, null, null, null, /, Instance of 'SimpleType', o, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, /)
+      parseFields(/, null, null, null, null, null, null, null, /, Instance of 'SimpleType', o, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, /)
         listener: handleIdentifier(f, typeReference)
         listener: handleNoTypeArguments(o)
         listener: handleType(f, null)
         ensureIdentifierPotentiallyRecovered(f, topLevelVariableDeclaration, false)
           listener: handleIdentifier(o, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(o, o, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(o, o, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(r)
         ensureSemicolon(o)
           reportRecoverableError(o, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -710,14 +710,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(r)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', d, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', d, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(r, typeReference)
         listener: handleNoTypeArguments(d)
         listener: handleType(r, null)
         ensureIdentifierPotentiallyRecovered(r, topLevelVariableDeclaration, false)
           listener: handleIdentifier(d, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(d, d, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(d, d, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(e)
         ensureSemicolon(d)
           reportRecoverableError(d, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -731,14 +731,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(t)
         listener: handleType(e, null)
         ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
           listener: handleIdentifier(t, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(t, t, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(t, t, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(a)
         ensureSemicolon(t)
           reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -752,14 +752,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(a)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(a, typeReference)
         listener: handleNoTypeArguments(i)
         listener: handleType(a, null)
         ensureIdentifierPotentiallyRecovered(a, topLevelVariableDeclaration, false)
           listener: handleIdentifier(i, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(i, i, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(i, i, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(l)
         ensureSemicolon(i)
           reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -773,8 +773,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(l)
-      parseTopLevelMethod(;, null, ;, Instance of 'SimpleType', null, s, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'SimpleType', null, s, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleIdentifier(l, typeReference)
         listener: handleNoTypeArguments(s)
         listener: handleType(l, null)
@@ -819,14 +819,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(.)
       listener: beginTopLevelMember(A)
-      parseFields(., null, null, null, null, null, null, ., Instance of 'SimpleType', l, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, .)
+      parseFields(., null, null, null, null, null, null, null, ., Instance of 'SimpleType', l, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, .)
         listener: handleIdentifier(A, typeReference)
         listener: handleNoTypeArguments(l)
         listener: handleType(A, null)
         ensureIdentifierPotentiallyRecovered(A, topLevelVariableDeclaration, false)
           listener: handleIdentifier(l, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(l, l, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(l, l, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(l)
         ensureSemicolon(l)
           reportRecoverableError(l, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -840,14 +840,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(l)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(l, typeReference)
         listener: handleNoTypeArguments(r)
         listener: handleType(l, null)
         ensureIdentifierPotentiallyRecovered(l, topLevelVariableDeclaration, false)
           listener: handleIdentifier(r, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(r, r, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(r, r, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(i)
         ensureSemicolon(r)
           reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -861,14 +861,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(i)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', g, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', g, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(i, typeReference)
         listener: handleNoTypeArguments(g)
         listener: handleType(i, null)
         ensureIdentifierPotentiallyRecovered(i, topLevelVariableDeclaration, false)
           listener: handleIdentifier(g, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(g, g, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(g, g, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(h)
         ensureSemicolon(g)
           reportRecoverableError(g, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -882,14 +882,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(h)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(h, typeReference)
         listener: handleNoTypeArguments(t)
         listener: handleType(h, null)
         ensureIdentifierPotentiallyRecovered(h, topLevelVariableDeclaration, false)
           listener: handleIdentifier(t, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(t, t, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(t, t, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(s)
         ensureSemicolon(t)
           reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -903,14 +903,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(r)
         listener: handleType(s, null)
         ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
           listener: handleIdentifier(r, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(r, r, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(r, r, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(e)
         ensureSemicolon(r)
           reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -924,14 +924,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', s, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', s, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(s)
         listener: handleType(e, null)
         ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
           listener: handleIdentifier(s, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(s, s, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(s, s, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(e)
         ensureSemicolon(s)
           reportRecoverableError(s, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -945,14 +945,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(r)
         listener: handleType(e, null)
         ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
           listener: handleIdentifier(r, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(r, r, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(r, r, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(v)
         ensureSemicolon(r)
           reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -966,14 +966,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(v)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(v, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(v, null)
         ensureIdentifierPotentiallyRecovered(v, topLevelVariableDeclaration, false)
           listener: handleIdentifier(e, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(e, e, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(d)
         ensureSemicolon(e)
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -987,8 +987,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(d)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'PrefixedType', s, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'PrefixedType', s, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(d, prefixedTypeReference)
         listener: handleIdentifier(U, typeReferenceContinuation)
         listener: handleQualified(.)
@@ -996,7 +996,7 @@
         listener: handleType(d, null)
         ensureIdentifierPotentiallyRecovered(U, topLevelVariableDeclaration, false)
           listener: handleIdentifier(s, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(s, s, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(s, s, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(e)
         ensureSemicolon(s)
           reportRecoverableError(s, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1010,14 +1010,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', o, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', o, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(o)
         listener: handleType(e, null)
         ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
           listener: handleIdentifier(o, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(o, o, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(o, o, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(f)
         ensureSemicolon(o)
           reportRecoverableError(o, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1031,14 +1031,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(f)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(f, typeReference)
         listener: handleNoTypeArguments(t)
         listener: handleType(f, null)
         ensureIdentifierPotentiallyRecovered(f, topLevelVariableDeclaration, false)
           listener: handleIdentifier(t, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(t, t, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(t, t, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(h)
         ensureSemicolon(t)
           reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1052,14 +1052,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(h)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(h, typeReference)
         listener: handleNoTypeArguments(i)
         listener: handleType(h, null)
         ensureIdentifierPotentiallyRecovered(h, topLevelVariableDeclaration, false)
           listener: handleIdentifier(i, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(i, i, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(i, i, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(s)
         ensureSemicolon(i)
           reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1073,14 +1073,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', s, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', s, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(s)
         listener: handleType(s, null)
         ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
           listener: handleIdentifier(s, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(s, s, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(s, s, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(o)
         ensureSemicolon(s)
           reportRecoverableError(s, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1094,14 +1094,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(o)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', u, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', u, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(o, typeReference)
         listener: handleNoTypeArguments(u)
         listener: handleType(o, null)
         ensureIdentifierPotentiallyRecovered(o, topLevelVariableDeclaration, false)
           listener: handleIdentifier(u, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(u, u, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(u, u, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(r)
         ensureSemicolon(u)
           reportRecoverableError(u, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1115,14 +1115,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(r)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', c, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', c, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(r, typeReference)
         listener: handleNoTypeArguments(c)
         listener: handleType(r, null)
         ensureIdentifierPotentiallyRecovered(r, topLevelVariableDeclaration, false)
           listener: handleIdentifier(c, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(c, c, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(c, c, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(e)
         ensureSemicolon(c)
           reportRecoverableError(c, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1136,14 +1136,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', c, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', c, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(c)
         listener: handleType(e, null)
         ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
           listener: handleIdentifier(c, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(c, c, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(c, c, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(o)
         ensureSemicolon(c)
           reportRecoverableError(c, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1157,14 +1157,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(o)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', d, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', d, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(o, typeReference)
         listener: handleNoTypeArguments(d)
         listener: handleType(o, null)
         ensureIdentifierPotentiallyRecovered(o, topLevelVariableDeclaration, false)
           listener: handleIdentifier(d, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(d, d, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(d, d, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(e)
         ensureSemicolon(d)
           reportRecoverableError(d, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1178,14 +1178,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(i)
         listener: handleType(e, null)
         ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
           listener: handleIdentifier(i, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(i, i, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(i, i, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(s)
         ensureSemicolon(i)
           reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1199,14 +1199,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', g, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', g, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(g)
         listener: handleType(s, null)
         ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
           listener: handleIdentifier(g, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(g, g, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(g, g, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(o)
         ensureSemicolon(g)
           reportRecoverableError(g, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1220,14 +1220,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(o)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', v, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', v, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(o, typeReference)
         listener: handleNoTypeArguments(v)
         listener: handleType(o, null)
         ensureIdentifierPotentiallyRecovered(o, topLevelVariableDeclaration, false)
           listener: handleIdentifier(v, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(v, v, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(v, v, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(e)
         ensureSemicolon(v)
           reportRecoverableError(v, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1241,14 +1241,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(r)
         listener: handleType(e, null)
         ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
           listener: handleIdentifier(r, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(r, r, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(r, r, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(n)
         ensureSemicolon(r)
           reportRecoverableError(r, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1262,14 +1262,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(n)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(n, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(n, null)
         ensureIdentifierPotentiallyRecovered(n, topLevelVariableDeclaration, false)
           listener: handleIdentifier(e, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(e, e, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(d)
         ensureSemicolon(e)
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1283,14 +1283,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(d)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', b, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', b, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(d, typeReference)
         listener: handleNoTypeArguments(b)
         listener: handleType(d, null)
         ensureIdentifierPotentiallyRecovered(d, topLevelVariableDeclaration, false)
           listener: handleIdentifier(b, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(b, b, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(b, b, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(y)
         ensureSemicolon(b)
           reportRecoverableError(b, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1304,14 +1304,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(y)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(y, typeReference)
         listener: handleNoTypeArguments(a)
         listener: handleType(y, null)
         ensureIdentifierPotentiallyRecovered(y, topLevelVariableDeclaration, false)
           listener: handleIdentifier(a, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(a, a, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(a, a, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(/)
         ensureSemicolon(a)
           reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1345,14 +1345,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(/)
       listener: beginTopLevelMember(B)
-      parseFields(/, null, null, null, null, null, null, /, Instance of 'SimpleType', S, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, /)
+      parseFields(/, null, null, null, null, null, null, null, /, Instance of 'SimpleType', S, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, /)
         listener: handleIdentifier(B, typeReference)
         listener: handleNoTypeArguments(S)
         listener: handleType(B, null)
         ensureIdentifierPotentiallyRecovered(B, topLevelVariableDeclaration, false)
           listener: handleIdentifier(S, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(S, S, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(S, S, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(D)
         ensureSemicolon(S)
           reportRecoverableError(S, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1367,14 +1367,14 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(D)
       isReservedKeyword(-)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'NoType', D, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'NoType', D, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         reportRecoverableError(D, MissingConstFinalVarOrType)
           listener: handleRecoverableError(MissingConstFinalVarOrType, D, D)
         listener: handleNoType(;)
         ensureIdentifierPotentiallyRecovered(;, topLevelVariableDeclaration, false)
           listener: handleIdentifier(D, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(D, D, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(D, D, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(-)
         ensureSemicolon(D)
           reportRecoverableError(D, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1398,14 +1398,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(-)
       listener: beginTopLevelMember(s)
-      parseFields(-, null, null, null, null, null, null, -, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, -)
+      parseFields(-, null, null, null, null, null, null, null, -, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, -)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(t)
         listener: handleType(s, null)
         ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
           listener: handleIdentifier(t, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(t, t, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(t, t, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(y)
         ensureSemicolon(t)
           reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1419,14 +1419,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(y)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', l, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', l, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(y, typeReference)
         listener: handleNoTypeArguments(l)
         listener: handleType(y, null)
         ensureIdentifierPotentiallyRecovered(y, topLevelVariableDeclaration, false)
           listener: handleIdentifier(l, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(l, l, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(l, l, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(e)
         ensureSemicolon(l)
           reportRecoverableError(l, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1440,14 +1440,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', l, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', l, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(l)
         listener: handleType(e, null)
         ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
           listener: handleIdentifier(l, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(l, l, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(l, l, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(i)
         ensureSemicolon(l)
           reportRecoverableError(l, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1461,14 +1461,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(i)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', c, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', c, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(i, typeReference)
         listener: handleNoTypeArguments(c)
         listener: handleType(i, null)
         ensureIdentifierPotentiallyRecovered(i, topLevelVariableDeclaration, false)
           listener: handleIdentifier(c, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(c, c, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(c, c, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(e)
         ensureSemicolon(c)
           reportRecoverableError(c, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1482,14 +1482,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', n, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', n, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(n)
         listener: handleType(e, null)
         ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
           listener: handleIdentifier(n, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(n, n, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(n, n, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(s)
         ensureSemicolon(n)
           reportRecoverableError(n, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1503,14 +1503,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(s, null)
         ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
           listener: handleIdentifier(e, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(e, e, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(t)
         ensureSemicolon(e)
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1524,14 +1524,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(t)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(t, typeReference)
         listener: handleNoTypeArguments(h)
         listener: handleType(t, null)
         ensureIdentifierPotentiallyRecovered(t, topLevelVariableDeclaration, false)
           listener: handleIdentifier(h, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(h, h, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(h, h, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(a)
         ensureSemicolon(h)
           reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1545,14 +1545,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(a)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', t, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(a, typeReference)
         listener: handleNoTypeArguments(t)
         listener: handleType(a, null)
         ensureIdentifierPotentiallyRecovered(a, topLevelVariableDeclaration, false)
           listener: handleIdentifier(t, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(t, t, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(t, t, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(c)
         ensureSemicolon(t)
           reportRecoverableError(t, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1566,14 +1566,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(c)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(c, typeReference)
         listener: handleNoTypeArguments(a)
         listener: handleType(c, null)
         ensureIdentifierPotentiallyRecovered(c, topLevelVariableDeclaration, false)
           listener: handleIdentifier(a, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(a, a, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(a, a, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(n)
         ensureSemicolon(a)
           reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1587,14 +1587,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(n)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', b, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', b, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(n, typeReference)
         listener: handleNoTypeArguments(b)
         listener: handleType(n, null)
         ensureIdentifierPotentiallyRecovered(n, topLevelVariableDeclaration, false)
           listener: handleIdentifier(b, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(b, b, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(b, b, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(e)
         ensureSemicolon(b)
           reportRecoverableError(b, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1608,14 +1608,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', f, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', f, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(f)
         listener: handleType(e, null)
         ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
           listener: handleIdentifier(f, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(f, f, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(f, f, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(o)
         ensureSemicolon(f)
           reportRecoverableError(f, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1629,14 +1629,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(o)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', u, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', u, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(o, typeReference)
         listener: handleNoTypeArguments(u)
         listener: handleType(o, null)
         ensureIdentifierPotentiallyRecovered(o, topLevelVariableDeclaration, false)
           listener: handleIdentifier(u, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(u, u, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(u, u, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(n)
         ensureSemicolon(u)
           reportRecoverableError(u, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1650,14 +1650,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(n)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', d, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', d, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(n, typeReference)
         listener: handleNoTypeArguments(d)
         listener: handleType(n, null)
         ensureIdentifierPotentiallyRecovered(n, topLevelVariableDeclaration, false)
           listener: handleIdentifier(d, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(d, d, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(d, d, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(i)
         ensureSemicolon(d)
           reportRecoverableError(d, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1671,14 +1671,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(i)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', n, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', n, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(i, typeReference)
         listener: handleNoTypeArguments(n)
         listener: handleType(i, null)
         ensureIdentifierPotentiallyRecovered(i, topLevelVariableDeclaration, false)
           listener: handleIdentifier(n, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(n, n, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(n, n, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(t)
         ensureSemicolon(n)
           reportRecoverableError(n, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1692,14 +1692,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(t)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(t, typeReference)
         listener: handleNoTypeArguments(h)
         listener: handleType(t, null)
         ensureIdentifierPotentiallyRecovered(t, topLevelVariableDeclaration, false)
           listener: handleIdentifier(h, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(h, h, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(h, h, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(e)
         ensureSemicolon(h)
           reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1713,14 +1713,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(e)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', L, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', L, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(e, typeReference)
         listener: handleNoTypeArguments(L)
         listener: handleType(e, null)
         ensureIdentifierPotentiallyRecovered(e, topLevelVariableDeclaration, false)
           listener: handleIdentifier(L, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(L, L, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(L, L, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(I)
         ensureSemicolon(L)
           reportRecoverableError(L, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1734,14 +1734,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(I)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', C, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', C, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(I, typeReference)
         listener: handleNoTypeArguments(C)
         listener: handleType(I, null)
         ensureIdentifierPotentiallyRecovered(I, topLevelVariableDeclaration, false)
           listener: handleIdentifier(C, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(C, C, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(C, C, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(E)
         ensureSemicolon(C)
           reportRecoverableError(C, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1755,14 +1755,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(E)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', N, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', N, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(E, typeReference)
         listener: handleNoTypeArguments(N)
         listener: handleType(E, null)
         ensureIdentifierPotentiallyRecovered(E, topLevelVariableDeclaration, false)
           listener: handleIdentifier(N, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(N, N, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(N, N, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(S)
         ensureSemicolon(N)
           reportRecoverableError(N, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1776,8 +1776,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(S)
-      parseTopLevelMethod(;, null, ;, Instance of 'SimpleType', null, E, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'SimpleType', null, E, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleIdentifier(S, typeReference)
         listener: handleNoTypeArguments(E)
         listener: handleType(S, null)
@@ -1822,14 +1822,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(.)
       listener: beginTopLevelMember(m)
-      parseFields(., null, null, null, null, null, null, ., Instance of 'SimpleType', d, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, .)
+      parseFields(., null, null, null, null, null, null, null, ., Instance of 'SimpleType', d, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, .)
         listener: handleIdentifier(m, typeReference)
         listener: handleNoTypeArguments(d)
         listener: handleType(m, null)
         ensureIdentifierPotentiallyRecovered(m, topLevelVariableDeclaration, false)
           listener: handleIdentifier(d, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(d, d, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(d, d, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(f)
         ensureSemicolon(d)
           reportRecoverableError(d, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1843,14 +1843,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(f)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(f, typeReference)
         listener: handleNoTypeArguments(i)
         listener: handleType(f, null)
         ensureIdentifierPotentiallyRecovered(f, topLevelVariableDeclaration, false)
           listener: handleIdentifier(i, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(i, i, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(i, i, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(l)
         ensureSemicolon(i)
           reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1864,8 +1864,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(l)
-      parseTopLevelMethod(;, null, ;, Instance of 'SimpleType', null, e, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'SimpleType', null, e, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleIdentifier(l, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(l, null)
@@ -1930,14 +1930,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(/)
       listener: beginTopLevelMember(T)
-      parseFields(/, null, null, null, null, null, null, /, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, /)
+      parseFields(/, null, null, null, null, null, null, null, /, Instance of 'SimpleType', h, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, /)
         listener: handleIdentifier(T, typeReference)
         listener: handleNoTypeArguments(h)
         listener: handleType(T, null)
         ensureIdentifierPotentiallyRecovered(T, topLevelVariableDeclaration, false)
           listener: handleIdentifier(h, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(h, h, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(h, h, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(i)
         ensureSemicolon(h)
           reportRecoverableError(h, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1951,14 +1951,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(i)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', s, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', s, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(i, typeReference)
         listener: handleNoTypeArguments(s)
         listener: handleType(i, null)
         ensureIdentifierPotentiallyRecovered(i, topLevelVariableDeclaration, false)
           listener: handleIdentifier(s, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(s, s, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(s, s, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(f)
         ensureSemicolon(s)
           reportRecoverableError(s, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1972,14 +1972,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(f)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', i, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(f, typeReference)
         listener: handleNoTypeArguments(i)
         listener: handleType(f, null)
         ensureIdentifierPotentiallyRecovered(f, topLevelVariableDeclaration, false)
           listener: handleIdentifier(i, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(i, i, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(i, i, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(l)
         ensureSemicolon(i)
           reportRecoverableError(i, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -1993,14 +1993,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(l)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(l, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(l, null)
         ensureIdentifierPotentiallyRecovered(l, topLevelVariableDeclaration, false)
           listener: handleIdentifier(e, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(e, e, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(i)
         ensureSemicolon(e)
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -2014,14 +2014,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(i)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', s, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', s, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(i, typeReference)
         listener: handleNoTypeArguments(s)
         listener: handleType(i, null)
         ensureIdentifierPotentiallyRecovered(i, topLevelVariableDeclaration, false)
           listener: handleIdentifier(s, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(s, s, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(s, s, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(s)
         ensureSemicolon(s)
           reportRecoverableError(s, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -2035,14 +2035,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(a)
         listener: handleType(s, null)
         ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
           listener: handleIdentifier(a, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(a, a, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(a, a, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(v)
         ensureSemicolon(a)
           reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -2056,14 +2056,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(v)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', e, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(v, typeReference)
         listener: handleNoTypeArguments(e)
         listener: handleType(v, null)
         ensureIdentifierPotentiallyRecovered(v, topLevelVariableDeclaration, false)
           listener: handleIdentifier(e, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(e, e, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(e, e, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(d)
         ensureSemicolon(e)
           reportRecoverableError(e, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -2077,14 +2077,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(d)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(d, typeReference)
         listener: handleNoTypeArguments(a)
         listener: handleType(d, null)
         ensureIdentifierPotentiallyRecovered(d, topLevelVariableDeclaration, false)
           listener: handleIdentifier(a, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(a, a, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(a, a, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(s)
         ensureSemicolon(a)
           reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -2098,14 +2098,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(s)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', U, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', U, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(s, typeReference)
         listener: handleNoTypeArguments(U)
         listener: handleType(s, null)
         ensureIdentifierPotentiallyRecovered(s, topLevelVariableDeclaration, false)
           listener: handleIdentifier(U, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(U, U, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(U, U, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(T)
         ensureSemicolon(U)
           reportRecoverableError(U, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -2119,14 +2119,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(T)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', F, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', F, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(T, typeReference)
         listener: handleNoTypeArguments(F)
         listener: handleType(T, null)
         ensureIdentifierPotentiallyRecovered(T, topLevelVariableDeclaration, false)
           listener: handleIdentifier(F, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(F, F, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(F, F, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(-)
         ensureSemicolon(F)
           reportRecoverableError(F, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -2170,8 +2170,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(6)
       listener: beginTopLevelMember(L)
-      parseTopLevelMethod(6, null, 6, Instance of 'SimpleType', null, E, false)
-        listener: beginTopLevelMethod(6, null)
+      parseTopLevelMethod(6, null, null, 6, Instance of 'SimpleType', null, E, false)
+        listener: beginTopLevelMethod(6, null, null)
         listener: handleIdentifier(L, typeReference)
         listener: handleNoTypeArguments(E)
         listener: handleType(L, null)
@@ -2216,14 +2216,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(.)
       listener: beginTopLevelMember(m)
-      parseFields(., null, null, null, null, null, null, ., Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, .)
+      parseFields(., null, null, null, null, null, null, null, ., Instance of 'SimpleType', a, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, .)
         listener: handleIdentifier(m, typeReference)
         listener: handleNoTypeArguments(a)
         listener: handleType(m, null)
         ensureIdentifierPotentiallyRecovered(m, topLevelVariableDeclaration, false)
           listener: handleIdentifier(a, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(a, a, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(a, a, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(i)
         ensureSemicolon(a)
           reportRecoverableError(a, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
@@ -2237,8 +2237,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(i)
-      parseTopLevelMethod(;, null, ;, Instance of 'SimpleType', null, n, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'SimpleType', null, n, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleIdentifier(i, typeReference)
         listener: handleNoTypeArguments(n)
         listener: handleType(i, null)
diff --git a/pkg/front_end/parser_testcases/error_recovery/yield_not_in_generator.dart.expect b/pkg/front_end/parser_testcases/error_recovery/yield_not_in_generator.dart.expect
index 4013553..2eaade3 100644
--- a/pkg/front_end/parser_testcases/error_recovery/yield_not_in_generator.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/yield_not_in_generator.dart.expect
@@ -8,7 +8,7 @@
   beginMetadataStar(Future)
   endMetadataStar(0)
   beginTopLevelMember(Future)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleIdentifier(Future, typeReference)
       beginTypeArguments(<)
         handleIdentifier(int, typeReference)
@@ -38,7 +38,7 @@
   beginMetadataStar(List)
   endMetadataStar(0)
   beginTopLevelMember(List)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleIdentifier(List, typeReference)
       beginTypeArguments(<)
         handleIdentifier(int, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/yield_not_in_generator.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/yield_not_in_generator.dart.intertwined.expect
index 0de9b98..73a9892 100644
--- a/pkg/front_end/parser_testcases/error_recovery/yield_not_in_generator.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/yield_not_in_generator.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(Future)
-      parseTopLevelMethod(, null, , Instance of 'SimpleTypeWith1Argument', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'SimpleTypeWith1Argument', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleIdentifier(Future, typeReference)
         listener: beginTypeArguments(<)
         listener: handleIdentifier(int, typeReference)
@@ -76,8 +76,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(List)
-      parseTopLevelMethod(;, null, ;, Instance of 'SimpleTypeWith1Argument', null, g, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'SimpleTypeWith1Argument', null, g, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleIdentifier(List, typeReference)
         listener: beginTypeArguments(<)
         listener: handleIdentifier(int, typeReference)
diff --git a/pkg/front_end/parser_testcases/extension_named_type.dart.expect b/pkg/front_end/parser_testcases/extension_named_type.dart.expect
index e225c198..6c0a1eb 100644
--- a/pkg/front_end/parser_testcases/extension_named_type.dart.expect
+++ b/pkg/front_end/parser_testcases/extension_named_type.dart.expect
@@ -45,7 +45,7 @@
   beginMetadataStar(test)
   endMetadataStar(0)
   beginTopLevelMember(test)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/extension_named_type.dart.intertwined.expect b/pkg/front_end/parser_testcases/extension_named_type.dart.intertwined.expect
index 34a44f1..becb018 100644
--- a/pkg/front_end/parser_testcases/extension_named_type.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/extension_named_type.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -34,8 +33,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(extension)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, extension, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(}, extension)
+    parseTopLevelKeywordDeclaration(}, extension, null, Instance of 'DirectiveContext')
       parseExtension(extension)
         listener: beginExtensionDeclarationPrelude(extension)
         listener: handleNoTypeVariables(on)
@@ -89,8 +87,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(test)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, test, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, test, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/extension_type.dart.intertwined.expect b/pkg/front_end/parser_testcases/extension_type.dart.intertwined.expect
index 8b81ba4..b1af445 100644
--- a/pkg/front_end/parser_testcases/extension_type.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/extension_type.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -34,8 +33,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(extension)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, extension, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(}, extension)
+    parseTopLevelKeywordDeclaration(}, extension, null, Instance of 'DirectiveContext')
       parseExtension(extension)
         listener: beginExtensionDeclarationPrelude(extension)
         listener: handleNoTypeVariables(on)
diff --git a/pkg/front_end/parser_testcases/extensions/covariant.dart.intertwined.expect b/pkg/front_end/parser_testcases/extensions/covariant.dart.intertwined.expect
index ae84ff5..8761c78 100644
--- a/pkg/front_end/parser_testcases/extensions/covariant.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/extensions/covariant.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -34,8 +33,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -65,8 +63,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(extension)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, extension, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(}, extension)
+    parseTopLevelKeywordDeclaration(}, extension, null, Instance of 'DirectiveContext')
       parseExtension(extension)
         listener: beginExtensionDeclarationPrelude(extension)
         listener: handleNoTypeVariables(on)
diff --git a/pkg/front_end/parser_testcases/extensions/not_covariant.dart.intertwined.expect b/pkg/front_end/parser_testcases/extensions/not_covariant.dart.intertwined.expect
index 1632b2d..066ec7b 100644
--- a/pkg/front_end/parser_testcases/extensions/not_covariant.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/extensions/not_covariant.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -34,8 +33,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -65,8 +63,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(extension)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, extension, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(}, extension)
+    parseTopLevelKeywordDeclaration(}, extension, null, Instance of 'DirectiveContext')
       parseExtension(extension)
         listener: beginExtensionDeclarationPrelude(extension)
         listener: handleNoTypeVariables(on)
diff --git a/pkg/front_end/parser_testcases/extensions/static.dart.intertwined.expect b/pkg/front_end/parser_testcases/extensions/static.dart.intertwined.expect
index 0148f29..bdb3c0b 100644
--- a/pkg/front_end/parser_testcases/extensions/static.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/extensions/static.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -34,8 +33,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -65,8 +63,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(extension)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, extension, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(}, extension)
+    parseTopLevelKeywordDeclaration(}, extension, null, Instance of 'DirectiveContext')
       parseExtension(extension)
         listener: beginExtensionDeclarationPrelude(extension)
         listener: handleNoTypeVariables(on)
diff --git a/pkg/front_end/parser_testcases/extensions/static_covariant.dart.intertwined.expect b/pkg/front_end/parser_testcases/extensions/static_covariant.dart.intertwined.expect
index 04b0090f..96b9864 100644
--- a/pkg/front_end/parser_testcases/extensions/static_covariant.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/extensions/static_covariant.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -34,8 +33,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -65,8 +63,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(extension)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, extension, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(}, extension)
+    parseTopLevelKeywordDeclaration(}, extension, null, Instance of 'DirectiveContext')
       parseExtension(extension)
         listener: beginExtensionDeclarationPrelude(extension)
         listener: handleNoTypeVariables(on)
diff --git a/pkg/front_end/parser_testcases/general/ambiguous_builder_01.dart.expect b/pkg/front_end/parser_testcases/general/ambiguous_builder_01.dart.expect
index ad7134a..97f7555 100644
--- a/pkg/front_end/parser_testcases/general/ambiguous_builder_01.dart.expect
+++ b/pkg/front_end/parser_testcases/general/ambiguous_builder_01.dart.expect
@@ -36,7 +36,7 @@
   beginMetadataStar(x)
   endMetadataStar(0)
   beginTopLevelMember(x)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(x, topLevelFunctionDeclaration)
       handleNoTypeVariables(.)
@@ -57,7 +57,7 @@
   beginMetadataStar(y)
   endMetadataStar(0)
   beginTopLevelMember(y)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, .)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, .)
       handleRecoverableError(MissingConstFinalVarOrType, y, y)
       handleNoType(.)
       handleIdentifier(y, topLevelVariableDeclaration)
@@ -69,7 +69,7 @@
   beginMetadataStar(x)
   endMetadataStar(0)
   beginTopLevelMember(x)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleNoType(;)
       handleIdentifier(x, topLevelFunctionDeclaration)
       handleNoTypeVariables(.)
@@ -90,7 +90,7 @@
   beginMetadataStar(z)
   endMetadataStar(0)
   beginTopLevelMember(z)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, .)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, .)
       handleRecoverableError(MissingConstFinalVarOrType, z, z)
       handleNoType(.)
       handleIdentifier(z, topLevelVariableDeclaration)
@@ -102,7 +102,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleVoidKeyword(void)
       handleIdentifier(foo, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/ambiguous_builder_01.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/ambiguous_builder_01.dart.intertwined.expect
index 029957f..7bf2cf8 100644
--- a/pkg/front_end/parser_testcases/general/ambiguous_builder_01.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/ambiguous_builder_01.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(x)
       isReservedKeyword(.)
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, x, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, x, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(x, topLevelFunctionDeclaration)
@@ -54,14 +54,14 @@
     parseTopLevelMemberImpl(.)
       listener: beginTopLevelMember(y)
       isReservedKeyword(=)
-      parseFields(., null, null, null, null, null, null, ., Instance of 'NoType', y, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, .)
+      parseFields(., null, null, null, null, null, null, null, ., Instance of 'NoType', y, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, .)
         reportRecoverableError(y, MissingConstFinalVarOrType)
           listener: handleRecoverableError(MissingConstFinalVarOrType, y, y)
         listener: handleNoType(.)
         ensureIdentifierPotentiallyRecovered(., topLevelVariableDeclaration, false)
           listener: handleIdentifier(y, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(y, y, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(y, y, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -79,8 +79,8 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(x)
       isReservedKeyword(.)
-      parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, x, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'NoType', null, x, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleNoType(;)
         ensureIdentifierPotentiallyRecovered(;, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(x, topLevelFunctionDeclaration)
@@ -124,14 +124,14 @@
     parseTopLevelMemberImpl(.)
       listener: beginTopLevelMember(z)
       isReservedKeyword(=)
-      parseFields(., null, null, null, null, null, null, ., Instance of 'NoType', z, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, .)
+      parseFields(., null, null, null, null, null, null, null, ., Instance of 'NoType', z, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, .)
         reportRecoverableError(z, MissingConstFinalVarOrType)
           listener: handleRecoverableError(MissingConstFinalVarOrType, z, z)
         listener: handleNoType(.)
         ensureIdentifierPotentiallyRecovered(., topLevelVariableDeclaration, false)
           listener: handleIdentifier(z, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(z, z, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(z, z, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -148,8 +148,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(;, null, ;, Instance of 'VoidType', null, foo, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'VoidType', null, foo, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(foo, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/assignment.dart.expect b/pkg/front_end/parser_testcases/general/assignment.dart.expect
index 793fb9e..78fc80b 100644
--- a/pkg/front_end/parser_testcases/general/assignment.dart.expect
+++ b/pkg/front_end/parser_testcases/general/assignment.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/assignment.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/assignment.dart.intertwined.expect
index 6595c40..0005bed 100644
--- a/pkg/front_end/parser_testcases/general/assignment.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/assignment.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.expect
index 6d8c4b0..83fb2b4 100644
--- a/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.expect
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.expect
@@ -14,7 +14,7 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(abstract)
             handleType(int, null)
@@ -22,12 +22,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(as)
             handleType(int, null)
@@ -35,12 +35,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(covariant)
             handleType(int, null)
@@ -48,12 +48,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(deferred)
             handleType(int, null)
@@ -61,12 +61,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(dynamic)
             handleType(int, null)
@@ -74,12 +74,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(export)
             handleType(int, null)
@@ -87,12 +87,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(external)
             handleType(int, null)
@@ -100,12 +100,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(factory)
             handleType(int, null)
@@ -113,12 +113,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(Function)
             handleType(int, null)
@@ -126,12 +126,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(get)
             handleType(int, null)
@@ -139,12 +139,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(implements)
             handleType(int, null)
@@ -152,12 +152,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(import)
             handleType(int, null)
@@ -165,12 +165,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(interface)
             handleType(int, null)
@@ -178,12 +178,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(library)
             handleType(int, null)
@@ -191,12 +191,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(operator)
             handleType(int, null)
@@ -204,12 +204,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(mixin)
             handleType(int, null)
@@ -217,12 +217,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(part)
             handleType(int, null)
@@ -230,12 +230,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(set)
             handleType(int, null)
@@ -243,12 +243,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(static)
             handleType(int, null)
@@ -256,12 +256,12 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(typedef)
             handleType(int, null)
@@ -269,7 +269,7 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 20, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.intertwined.expect
index b1246df..8f9f913 100644
--- a/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_class_fields.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,14 +31,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', abstract, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              parseFields({, null, null, null, null, null, null, null, {, Instance of 'SimpleType', abstract, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(abstract)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(abstract, fieldDeclaration)
-                parseFieldInitializerOpt(abstract, abstract, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(abstract, abstract, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -48,7 +47,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -56,14 +55,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', as, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', as, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(as)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(as, fieldDeclaration)
-                parseFieldInitializerOpt(as, as, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(as, as, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -72,7 +71,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -80,14 +79,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', covariant, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', covariant, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(covariant)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(covariant, fieldDeclaration)
-                parseFieldInitializerOpt(covariant, covariant, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(covariant, covariant, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -96,7 +95,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -104,14 +103,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', deferred, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', deferred, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(deferred)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(deferred, fieldDeclaration)
-                parseFieldInitializerOpt(deferred, deferred, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(deferred, deferred, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -120,7 +119,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -128,14 +127,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', dynamic, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', dynamic, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(dynamic)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(dynamic, fieldDeclaration)
-                parseFieldInitializerOpt(dynamic, dynamic, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(dynamic, dynamic, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -144,7 +143,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -152,14 +151,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', export, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', export, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(export)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(export, fieldDeclaration)
-                parseFieldInitializerOpt(export, export, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(export, export, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -168,7 +167,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -176,14 +175,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', external, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', external, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(external)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(external, fieldDeclaration)
-                parseFieldInitializerOpt(external, external, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(external, external, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -192,7 +191,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -200,14 +199,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', factory, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', factory, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(factory)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(factory, fieldDeclaration)
-                parseFieldInitializerOpt(factory, factory, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(factory, factory, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -216,7 +215,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -224,14 +223,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', Function, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', Function, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(Function)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(Function, fieldDeclaration)
-                parseFieldInitializerOpt(Function, Function, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(Function, Function, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -240,7 +239,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -249,14 +248,14 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               isReservedKeyword(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', get, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', get, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(get)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(get, fieldDeclaration)
-                parseFieldInitializerOpt(get, get, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(get, get, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -265,7 +264,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -273,14 +272,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', implements, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', implements, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(implements)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(implements, fieldDeclaration)
-                parseFieldInitializerOpt(implements, implements, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(implements, implements, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -289,7 +288,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -297,14 +296,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', import, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', import, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(import)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(import, fieldDeclaration)
-                parseFieldInitializerOpt(import, import, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(import, import, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -313,7 +312,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -321,14 +320,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', interface, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', interface, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(interface)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(interface, fieldDeclaration)
-                parseFieldInitializerOpt(interface, interface, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(interface, interface, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -337,7 +336,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -345,14 +344,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', library, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', library, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(library)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(library, fieldDeclaration)
-                parseFieldInitializerOpt(library, library, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(library, library, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -361,7 +360,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -370,14 +369,14 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               isUnaryMinus(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', operator, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', operator, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(operator)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(operator, fieldDeclaration)
-                parseFieldInitializerOpt(operator, operator, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(operator, operator, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -386,7 +385,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -394,14 +393,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', mixin, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', mixin, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(mixin)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(mixin, fieldDeclaration)
-                parseFieldInitializerOpt(mixin, mixin, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(mixin, mixin, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -410,7 +409,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -418,14 +417,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', part, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', part, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(part)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(part, fieldDeclaration)
-                parseFieldInitializerOpt(part, part, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(part, part, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -434,7 +433,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -443,14 +442,14 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               isReservedKeyword(=)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', set, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', set, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(set)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(set, fieldDeclaration)
-                parseFieldInitializerOpt(set, set, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(set, set, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -459,7 +458,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -467,14 +466,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', static, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', static, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(static)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(static, fieldDeclaration)
-                parseFieldInitializerOpt(static, static, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(static, static, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -483,7 +482,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, WrapperClass)
@@ -491,14 +490,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', typedef, DeclarationKind.Class, WrapperClass, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', typedef, DeclarationKind.Class, WrapperClass, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(typedef)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(typedef, fieldDeclaration)
-                parseFieldInitializerOpt(typedef, typedef, null, null, null, null, DeclarationKind.Class, WrapperClass)
+                parseFieldInitializerOpt(typedef, typedef, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -507,7 +506,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 20, {, })
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.intertwined.expect
index d938765..a943518 100644
--- a/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_class_methods.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.expect
index 85e6adb..c4c9824 100644
--- a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.expect
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(abstract)
       handleType(int, null)
@@ -15,7 +15,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(as)
       handleType(int, null)
@@ -28,7 +28,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(covariant)
       handleType(int, null)
@@ -41,7 +41,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(deferred)
       handleType(int, null)
@@ -54,7 +54,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(dynamic)
       handleType(int, null)
@@ -67,7 +67,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(export)
       handleType(int, null)
@@ -80,7 +80,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(external)
       handleType(int, null)
@@ -93,7 +93,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(factory)
       handleType(int, null)
@@ -106,7 +106,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(Function)
       handleType(int, null)
@@ -119,7 +119,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(get)
       handleType(int, null)
@@ -132,7 +132,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(implements)
       handleType(int, null)
@@ -145,7 +145,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(import)
       handleType(int, null)
@@ -158,7 +158,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(interface)
       handleType(int, null)
@@ -171,7 +171,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(library)
       handleType(int, null)
@@ -184,7 +184,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(operator)
       handleType(int, null)
@@ -197,7 +197,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(mixin)
       handleType(int, null)
@@ -210,7 +210,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(part)
       handleType(int, null)
@@ -223,7 +223,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(set)
       handleType(int, null)
@@ -236,7 +236,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(static)
       handleType(int, null)
@@ -249,7 +249,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(typedef)
       handleType(int, null)
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.intertwined.expect
index 8ecab82..65cde96 100644
--- a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_fields.dart.intertwined.expect
@@ -8,14 +8,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(int)
-      parseFields(, null, null, null, null, null, null, , Instance of 'SimpleType', abstract, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+      parseFields(, null, null, null, null, null, null, null, , Instance of 'SimpleType', abstract, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(abstract)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(abstract, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(abstract, abstract, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(abstract, abstract, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -32,14 +32,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', as, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', as, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(as)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(as, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(as, as, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(as, as, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -56,14 +56,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', covariant, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', covariant, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(covariant)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(covariant, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(covariant, covariant, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(covariant, covariant, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -80,14 +80,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', deferred, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', deferred, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(deferred)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(deferred, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(deferred, deferred, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(deferred, deferred, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -104,14 +104,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', dynamic, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', dynamic, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(dynamic)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(dynamic, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(dynamic, dynamic, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(dynamic, dynamic, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -128,14 +128,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', export, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', export, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(export)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(export, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(export, export, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(export, export, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -152,14 +152,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', external, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', external, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(external)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(external, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(external, external, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(external, external, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -176,14 +176,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', factory, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', factory, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(factory)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(factory, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(factory, factory, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(factory, factory, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -200,14 +200,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', Function, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', Function, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(Function)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(Function, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(Function, Function, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(Function, Function, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -224,14 +224,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', get, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', get, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(get)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(get, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(get, get, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(get, get, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -248,14 +248,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', implements, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', implements, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(implements)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(implements, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(implements, implements, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(implements, implements, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -272,14 +272,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', import, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', import, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(import)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(import, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(import, import, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(import, import, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -296,14 +296,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', interface, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', interface, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(interface)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(interface, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(interface, interface, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(interface, interface, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -320,14 +320,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', library, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', library, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(library)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(library, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(library, library, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(library, library, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -344,14 +344,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', operator, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', operator, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(operator)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operator, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operator, operator, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operator, operator, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -368,14 +368,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', mixin, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', mixin, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(mixin)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(mixin, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(mixin, mixin, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(mixin, mixin, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -392,14 +392,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', part, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', part, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(part)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(part, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(part, part, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(part, part, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -416,14 +416,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', set, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', set, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(set)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(set, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(set, set, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(set, set, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -440,14 +440,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', static, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', static, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(static)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(static, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(static, static, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(static, static, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -464,14 +464,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(int)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', typedef, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', typedef, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(typedef)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(typedef, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(typedef, typedef, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(typedef, typedef, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.expect
index 0304d29..ed37033 100644
--- a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.expect
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(abstract)
       handleType(int, null)
@@ -56,7 +56,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(as)
       handleType(int, null)
@@ -110,7 +110,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(covariant)
       handleType(int, null)
@@ -164,7 +164,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(deferred)
       handleType(int, null)
@@ -218,7 +218,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(dynamic)
       handleType(int, null)
@@ -272,7 +272,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(export)
       handleType(int, null)
@@ -326,7 +326,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(external)
       handleType(int, null)
@@ -380,7 +380,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(factory)
       handleType(int, null)
@@ -434,7 +434,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(Function)
       handleType(int, null)
@@ -488,7 +488,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(get)
       handleType(int, null)
@@ -542,7 +542,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(implements)
       handleType(int, null)
@@ -596,7 +596,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(import)
       handleType(int, null)
@@ -650,7 +650,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(interface)
       handleType(int, null)
@@ -704,7 +704,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(library)
       handleType(int, null)
@@ -758,7 +758,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(operator)
       handleType(int, null)
@@ -812,7 +812,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(mixin)
       handleType(int, null)
@@ -866,7 +866,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(part)
       handleType(int, null)
@@ -920,7 +920,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(set)
       handleType(int, null)
@@ -974,7 +974,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(static)
       handleType(int, null)
@@ -1028,7 +1028,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(typedef)
       handleType(int, null)
diff --git a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.intertwined.expect
index 61e3d1b..3657522 100644
--- a/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/built_in_identifier_top_level_methods.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(, null, , Instance of 'SimpleType', null, abstract, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'SimpleType', null, abstract, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(abstract)
         listener: handleType(int, null)
@@ -141,8 +141,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, as, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, as, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(as)
         listener: handleType(int, null)
@@ -274,8 +274,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, covariant, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, covariant, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(covariant)
         listener: handleType(int, null)
@@ -407,8 +407,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, deferred, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, deferred, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(deferred)
         listener: handleType(int, null)
@@ -540,8 +540,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, dynamic, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, dynamic, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(dynamic)
         listener: handleType(int, null)
@@ -673,8 +673,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, export, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, export, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(export)
         listener: handleType(int, null)
@@ -806,8 +806,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, external, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, external, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(external)
         listener: handleType(int, null)
@@ -939,8 +939,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, factory, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, factory, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(factory)
         listener: handleType(int, null)
@@ -1072,8 +1072,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, Function, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, Function, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(Function)
         listener: handleType(int, null)
@@ -1205,8 +1205,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, get, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, get, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(get)
         listener: handleType(int, null)
@@ -1338,8 +1338,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, implements, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, implements, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(implements)
         listener: handleType(int, null)
@@ -1471,8 +1471,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, import, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, import, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(import)
         listener: handleType(int, null)
@@ -1604,8 +1604,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, interface, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, interface, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(interface)
         listener: handleType(int, null)
@@ -1737,8 +1737,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, library, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, library, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(library)
         listener: handleType(int, null)
@@ -1870,8 +1870,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, operator, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, operator, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(operator)
         listener: handleType(int, null)
@@ -2003,8 +2003,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, mixin, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, mixin, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(mixin)
         listener: handleType(int, null)
@@ -2136,8 +2136,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, part, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, part, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(part)
         listener: handleType(int, null)
@@ -2269,8 +2269,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, set, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, set, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(set)
         listener: handleType(int, null)
@@ -2402,8 +2402,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, static, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, static, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(static)
         listener: handleType(int, null)
@@ -2535,8 +2535,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(int)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, typedef, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, typedef, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(typedef)
         listener: handleType(int, null)
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block.dart.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block.dart.expect
index 0914f09..bbc6919 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block.dart.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -51,7 +51,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(on, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block.dart.intertwined.expect
index 978a69c..5a8b511 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
@@ -122,8 +122,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, on, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, on, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(on, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block2.dart.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block2.dart.expect
index 6cd22a5..2622377 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block2.dart.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block2.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block2.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block2.dart.intertwined.expect
index c86c3bb..16b73ff 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block2.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block2.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block2_prime.dart.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block2_prime.dart.expect
index 42b2c0f..0bd07bd 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block2_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block2_prime.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block2_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block2_prime.dart.intertwined.expect
index 1f1b263..6922931 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block2_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block2_prime.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block3.dart.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block3.dart.expect
index b7e4845..a76f004 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block3.dart.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block3.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block3.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block3.dart.intertwined.expect
index a976a69..1961dd6 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block3.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block3.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block3_prime.dart.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block3_prime.dart.expect
index c26e870..7ae894f 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block3_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block3_prime.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block3_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block3_prime.dart.intertwined.expect
index cf7a142..10c263e 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block3_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block3_prime.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block4.dart.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block4.dart.expect
index 52112c9..44a3071 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block4.dart.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block4.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block4.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block4.dart.intertwined.expect
index 6735307..3fee6f6 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block4.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block4.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block4_prime.dart.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block4_prime.dart.expect
index 0df2227..dff16a5 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block4_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block4_prime.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block4_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block4_prime.dart.intertwined.expect
index 869a099..4a8d11a 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block4_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block4_prime.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block5.dart.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block5.dart.expect
index c639d14..1318bfe 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block5.dart.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block5.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block5.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block5.dart.intertwined.expect
index 93c805d..761800b 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block5.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block5.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block5_prime.dart.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block5_prime.dart.expect
index 95a5d34..f03df25 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block5_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block5_prime.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block5_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block5_prime.dart.intertwined.expect
index ac6aa6d..0570855 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block5_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block5_prime.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block_prime.dart.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block_prime.dart.expect
index 634138f..3848d33 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block_prime.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -51,7 +51,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(onX, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/call_on_after_try_block_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/call_on_after_try_block_prime.dart.intertwined.expect
index c48756b..40100a5 100644
--- a/pkg/front_end/parser_testcases/general/call_on_after_try_block_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/call_on_after_try_block_prime.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
@@ -119,8 +119,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, onX, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, onX, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(onX, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/chained_call_01.dart.expect b/pkg/front_end/parser_testcases/general/chained_call_01.dart.expect
index 339b30f..514a391 100644
--- a/pkg/front_end/parser_testcases/general/chained_call_01.dart.expect
+++ b/pkg/front_end/parser_testcases/general/chained_call_01.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/chained_call_01.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/chained_call_01.dart.intertwined.expect
index 4db3219..1d66387 100644
--- a/pkg/front_end/parser_testcases/general/chained_call_01.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/chained_call_01.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/chained_call_02.dart.expect b/pkg/front_end/parser_testcases/general/chained_call_02.dart.expect
index 920de7d..ab3cd87 100644
--- a/pkg/front_end/parser_testcases/general/chained_call_02.dart.expect
+++ b/pkg/front_end/parser_testcases/general/chained_call_02.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/chained_call_02.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/chained_call_02.dart.intertwined.expect
index 07a9f87..036a456 100644
--- a/pkg/front_end/parser_testcases/general/chained_call_02.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/chained_call_02.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/chained_call_03.dart.expect b/pkg/front_end/parser_testcases/general/chained_call_03.dart.expect
index f18f5e1..a127cb2 100644
--- a/pkg/front_end/parser_testcases/general/chained_call_03.dart.expect
+++ b/pkg/front_end/parser_testcases/general/chained_call_03.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/chained_call_03.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/chained_call_03.dart.intertwined.expect
index e4ee639..5e86f7b 100644
--- a/pkg/front_end/parser_testcases/general/chained_call_03.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/chained_call_03.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/chained_call_04.dart.expect b/pkg/front_end/parser_testcases/general/chained_call_04.dart.expect
index a92ef45..647163d 100644
--- a/pkg/front_end/parser_testcases/general/chained_call_04.dart.expect
+++ b/pkg/front_end/parser_testcases/general/chained_call_04.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/chained_call_04.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/chained_call_04.dart.intertwined.expect
index ca056bd..47b2f02 100644
--- a/pkg/front_end/parser_testcases/general/chained_call_04.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/chained_call_04.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/chained_call_05.dart.expect b/pkg/front_end/parser_testcases/general/chained_call_05.dart.expect
index b80b01b..fc05dac 100644
--- a/pkg/front_end/parser_testcases/general/chained_call_05.dart.expect
+++ b/pkg/front_end/parser_testcases/general/chained_call_05.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/chained_call_05.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/chained_call_05.dart.intertwined.expect
index 6b51be2..dfe42d1 100644
--- a/pkg/front_end/parser_testcases/general/chained_call_05.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/chained_call_05.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/chained_call_06.dart.expect b/pkg/front_end/parser_testcases/general/chained_call_06.dart.expect
index 2738857..76a1c9d 100644
--- a/pkg/front_end/parser_testcases/general/chained_call_06.dart.expect
+++ b/pkg/front_end/parser_testcases/general/chained_call_06.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/chained_call_06.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/chained_call_06.dart.intertwined.expect
index e2e0d1a..19f3f2c 100644
--- a/pkg/front_end/parser_testcases/general/chained_call_06.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/chained_call_06.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/chained_call_07.dart.expect b/pkg/front_end/parser_testcases/general/chained_call_07.dart.expect
index 487dc8f..d7bc5fb 100644
--- a/pkg/front_end/parser_testcases/general/chained_call_07.dart.expect
+++ b/pkg/front_end/parser_testcases/general/chained_call_07.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/chained_call_07.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/chained_call_07.dart.intertwined.expect
index a4b6952..dbf54d7 100644
--- a/pkg/front_end/parser_testcases/general/chained_call_07.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/chained_call_07.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/for.dart.expect b/pkg/front_end/parser_testcases/general/for.dart.expect
index 33fd303..e7b50ee 100644
--- a/pkg/front_end/parser_testcases/general/for.dart.expect
+++ b/pkg/front_end/parser_testcases/general/for.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/for.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/for.dart.intertwined.expect
index 6b2e0e1..e71f836 100644
--- a/pkg/front_end/parser_testcases/general/for.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/for.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/for_in.dart.expect b/pkg/front_end/parser_testcases/general/for_in.dart.expect
index c00444c..1e64b61 100644
--- a/pkg/front_end/parser_testcases/general/for_in.dart.expect
+++ b/pkg/front_end/parser_testcases/general/for_in.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/for_in.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/for_in.dart.intertwined.expect
index 6be8639..c58995c 100644
--- a/pkg/front_end/parser_testcases/general/for_in.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/for_in.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/for_in_no_decl.dart.expect b/pkg/front_end/parser_testcases/general/for_in_no_decl.dart.expect
index 54e4fc4..9d23aa54 100644
--- a/pkg/front_end/parser_testcases/general/for_in_no_decl.dart.expect
+++ b/pkg/front_end/parser_testcases/general/for_in_no_decl.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/for_in_no_decl.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/for_in_no_decl.dart.intertwined.expect
index 29a07e7..4fea17d 100644
--- a/pkg/front_end/parser_testcases/general/for_in_no_decl.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/for_in_no_decl.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/for_no_decl.dart.expect b/pkg/front_end/parser_testcases/general/for_no_decl.dart.expect
index 9ea424a..5dc94ea 100644
--- a/pkg/front_end/parser_testcases/general/for_no_decl.dart.expect
+++ b/pkg/front_end/parser_testcases/general/for_no_decl.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/for_no_decl.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/for_no_decl.dart.intertwined.expect
index 191bb85..07adb6d 100644
--- a/pkg/front_end/parser_testcases/general/for_no_decl.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/for_no_decl.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/function_declaration.dart.expect b/pkg/front_end/parser_testcases/general/function_declaration.dart.expect
index 4b497e8..c6677b1 100644
--- a/pkg/front_end/parser_testcases/general/function_declaration.dart.expect
+++ b/pkg/front_end/parser_testcases/general/function_declaration.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/function_declaration.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/function_declaration.dart.intertwined.expect
index 6b65195..1413759 100644
--- a/pkg/front_end/parser_testcases/general/function_declaration.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/function_declaration.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/function_expression.dart.expect b/pkg/front_end/parser_testcases/general/function_expression.dart.expect
index 2904ea3..d6f7444 100644
--- a/pkg/front_end/parser_testcases/general/function_expression.dart.expect
+++ b/pkg/front_end/parser_testcases/general/function_expression.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/function_expression.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/function_expression.dart.intertwined.expect
index 45036c8..4a83b37 100644
--- a/pkg/front_end/parser_testcases/general/function_expression.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/function_expression.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/function_reference_following_token.dart.expect b/pkg/front_end/parser_testcases/general/function_reference_following_token.dart.expect
index 8b8e356..bfa32fb 100644
--- a/pkg/front_end/parser_testcases/general/function_reference_following_token.dart.expect
+++ b/pkg/front_end/parser_testcases/general/function_reference_following_token.dart.expect
@@ -84,7 +84,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, )
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, )
       handleNoType(var)
       handleIdentifier(typeArgs_closeBrace, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -109,7 +109,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(typeArgs_closeBracket, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -134,7 +134,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(typeArgs_closeParen, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -162,7 +162,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(typeArgs_colon, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -189,7 +189,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(typeArgs_comma, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -215,7 +215,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(typeArgs_equals, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -241,7 +241,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(typeArgs_not_equals, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -267,7 +267,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(typeArgs_openParen, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -289,7 +289,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(typeArgs_period_methodInvocation, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -315,7 +315,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(typeArgs_period_methodInvocation_generic, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -348,7 +348,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(typeArgs_period_propertyAccess, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -376,7 +376,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(typeArgs_semicolon, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -399,7 +399,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_ampersand, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -441,7 +441,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_as, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -476,7 +476,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_asterisk, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -518,7 +518,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_bang_openBracket, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -556,7 +556,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_bang_paren, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -593,7 +593,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_bar, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -635,7 +635,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_caret, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -677,7 +677,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_is, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -719,7 +719,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_lessThan, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -749,7 +749,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_minus, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -785,7 +785,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_openBracket, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -822,7 +822,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_openBracket_error, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -866,7 +866,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_openBracket_unambiguous, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -907,7 +907,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_percent, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -949,7 +949,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_period_period, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -993,7 +993,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_plus, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -1035,7 +1035,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_question, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -1076,7 +1076,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_question_period_methodInvocation, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -1118,7 +1118,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_question_period_methodInvocation_generic, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -1164,7 +1164,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_question_period_period, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -1206,7 +1206,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_question_period_propertyAccess, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -1247,7 +1247,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_question_question, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -1289,7 +1289,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_slash, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -1331,7 +1331,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(operators_tilde_slash, topLevelVariableDeclaration)
       beginFieldInitializer(=)
diff --git a/pkg/front_end/parser_testcases/general/function_reference_following_token.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/function_reference_following_token.dart.intertwined.expect
index b8955d7..bb3f747 100644
--- a/pkg/front_end/parser_testcases/general/function_reference_following_token.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/function_reference_following_token.dart.intertwined.expect
@@ -8,12 +8,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(var)
-      parseFields(, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_closeBrace, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, )
+      parseFields(, null, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_closeBrace, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, )
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(typeArgs_closeBrace, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(typeArgs_closeBrace, typeArgs_closeBrace, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(typeArgs_closeBrace, typeArgs_closeBrace, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -53,12 +53,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_closeBracket, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_closeBracket, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(typeArgs_closeBracket, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(typeArgs_closeBracket, typeArgs_closeBracket, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(typeArgs_closeBracket, typeArgs_closeBracket, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -98,12 +98,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_closeParen, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_closeParen, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(typeArgs_closeParen, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(typeArgs_closeParen, typeArgs_closeParen, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(typeArgs_closeParen, typeArgs_closeParen, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -153,12 +153,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_colon, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_colon, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(typeArgs_colon, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(typeArgs_colon, typeArgs_colon, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(typeArgs_colon, typeArgs_colon, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -205,12 +205,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_comma, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_comma, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(typeArgs_comma, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(typeArgs_comma, typeArgs_comma, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(typeArgs_comma, typeArgs_comma, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -256,12 +256,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_equals, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_equals, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(typeArgs_equals, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(typeArgs_equals, typeArgs_equals, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(typeArgs_equals, typeArgs_equals, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -301,12 +301,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_not_equals, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_not_equals, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(typeArgs_not_equals, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(typeArgs_not_equals, typeArgs_not_equals, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(typeArgs_not_equals, typeArgs_not_equals, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -346,12 +346,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_openParen, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_openParen, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(typeArgs_openParen, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(typeArgs_openParen, typeArgs_openParen, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(typeArgs_openParen, typeArgs_openParen, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -386,12 +386,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_period_methodInvocation, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_period_methodInvocation, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(typeArgs_period_methodInvocation, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(typeArgs_period_methodInvocation, typeArgs_period_methodInvocation, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(typeArgs_period_methodInvocation, typeArgs_period_methodInvocation, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -428,12 +428,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_period_methodInvocation_generic, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_period_methodInvocation_generic, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(typeArgs_period_methodInvocation_generic, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(typeArgs_period_methodInvocation_generic, typeArgs_period_methodInvocation_generic, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(typeArgs_period_methodInvocation_generic, typeArgs_period_methodInvocation_generic, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -485,12 +485,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_period_propertyAccess, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_period_propertyAccess, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(typeArgs_period_propertyAccess, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(typeArgs_period_propertyAccess, typeArgs_period_propertyAccess, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(typeArgs_period_propertyAccess, typeArgs_period_propertyAccess, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -534,12 +534,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_semicolon, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', typeArgs_semicolon, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(typeArgs_semicolon, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(typeArgs_semicolon, typeArgs_semicolon, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(typeArgs_semicolon, typeArgs_semicolon, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -572,12 +572,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_ampersand, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_ampersand, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_ampersand, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_ampersand, operators_ampersand, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_ampersand, operators_ampersand, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -675,12 +675,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_as, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_as, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_as, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_as, operators_as, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_as, operators_as, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -764,12 +764,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_asterisk, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_asterisk, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_asterisk, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_asterisk, operators_asterisk, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_asterisk, operators_asterisk, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -867,12 +867,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_bang_openBracket, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_bang_openBracket, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_bang_openBracket, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_bang_openBracket, operators_bang_openBracket, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_bang_openBracket, operators_bang_openBracket, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -964,12 +964,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_bang_paren, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_bang_paren, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_bang_paren, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_bang_paren, operators_bang_paren, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_bang_paren, operators_bang_paren, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1064,12 +1064,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_bar, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_bar, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_bar, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_bar, operators_bar, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_bar, operators_bar, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1167,12 +1167,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_caret, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_caret, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_caret, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_caret, operators_caret, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_caret, operators_caret, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1270,12 +1270,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_is, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_is, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_is, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_is, operators_is, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_is, operators_is, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1369,12 +1369,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_lessThan, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_lessThan, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_lessThan, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_lessThan, operators_lessThan, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_lessThan, operators_lessThan, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1433,12 +1433,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_minus, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_minus, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_minus, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_minus, operators_minus, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_minus, operators_minus, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1523,12 +1523,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_openBracket, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_openBracket, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_openBracket, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_openBracket, operators_openBracket, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_openBracket, operators_openBracket, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1617,12 +1617,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_openBracket_error, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_openBracket_error, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_openBracket_error, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_openBracket_error, operators_openBracket_error, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_openBracket_error, operators_openBracket_error, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1727,12 +1727,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_openBracket_unambiguous, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_openBracket_unambiguous, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_openBracket_unambiguous, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_openBracket_unambiguous, operators_openBracket_unambiguous, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_openBracket_unambiguous, operators_openBracket_unambiguous, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1834,12 +1834,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_percent, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_percent, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_percent, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_percent, operators_percent, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_percent, operators_percent, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1937,12 +1937,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_period_period, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_period_period, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_period_period, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_period_period, operators_period_period, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_period_period, operators_period_period, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -2042,12 +2042,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_plus, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_plus, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_plus, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_plus, operators_plus, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_plus, operators_plus, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -2147,12 +2147,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_question, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_question, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_question, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_question, operators_question, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_question, operators_question, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -2253,12 +2253,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_question_period_methodInvocation, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_question_period_methodInvocation, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_question_period_methodInvocation, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_question_period_methodInvocation, operators_question_period_methodInvocation, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_question_period_methodInvocation, operators_question_period_methodInvocation, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -2357,12 +2357,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_question_period_methodInvocation_generic, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_question_period_methodInvocation_generic, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_question_period_methodInvocation_generic, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_question_period_methodInvocation_generic, operators_question_period_methodInvocation_generic, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_question_period_methodInvocation_generic, operators_question_period_methodInvocation_generic, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -2465,12 +2465,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_question_period_period, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_question_period_period, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_question_period_period, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_question_period_period, operators_question_period_period, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_question_period_period, operators_question_period_period, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -2575,12 +2575,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_question_period_propertyAccess, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_question_period_propertyAccess, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_question_period_propertyAccess, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_question_period_propertyAccess, operators_question_period_propertyAccess, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_question_period_propertyAccess, operators_question_period_propertyAccess, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -2675,12 +2675,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_question_question, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_question_question, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_question_question, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_question_question, operators_question_question, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_question_question, operators_question_question, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -2778,12 +2778,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_slash, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_slash, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_slash, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_slash, operators_slash, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_slash, operators_slash, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -2881,12 +2881,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', operators_tilde_slash, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', operators_tilde_slash, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(operators_tilde_slash, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(operators_tilde_slash, operators_tilde_slash, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(operators_tilde_slash, operators_tilde_slash, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
diff --git a/pkg/front_end/parser_testcases/general/function_reference_kinds.dart.expect b/pkg/front_end/parser_testcases/general/function_reference_kinds.dart.expect
index 63ed9e6..0742124 100644
--- a/pkg/front_end/parser_testcases/general/function_reference_kinds.dart.expect
+++ b/pkg/front_end/parser_testcases/general/function_reference_kinds.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, )
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, )
       handleNoType(var)
       handleIdentifier(simpleIdentifier, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -25,7 +25,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(method, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -54,7 +54,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(prefixedIdentifier, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -82,7 +82,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(three_identifiers, topLevelVariableDeclaration)
       beginFieldInitializer(=)
diff --git a/pkg/front_end/parser_testcases/general/function_reference_kinds.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/function_reference_kinds.dart.intertwined.expect
index 7e231fe..53ec6e5 100644
--- a/pkg/front_end/parser_testcases/general/function_reference_kinds.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/function_reference_kinds.dart.intertwined.expect
@@ -8,12 +8,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(var)
-      parseFields(, null, null, null, null, null, var, var, Instance of 'NoType', simpleIdentifier, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, )
+      parseFields(, null, null, null, null, null, null, var, var, Instance of 'NoType', simpleIdentifier, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, )
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(simpleIdentifier, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(simpleIdentifier, simpleIdentifier, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(simpleIdentifier, simpleIdentifier, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -46,12 +46,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', method, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', method, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(method, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(method, method, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(method, method, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -99,12 +99,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', prefixedIdentifier, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', prefixedIdentifier, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(prefixedIdentifier, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(prefixedIdentifier, prefixedIdentifier, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(prefixedIdentifier, prefixedIdentifier, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -148,12 +148,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', three_identifiers, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', three_identifiers, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(three_identifiers, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(three_identifiers, three_identifiers, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(three_identifiers, three_identifiers, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
diff --git a/pkg/front_end/parser_testcases/general/generic_function_typedef.dart.expect b/pkg/front_end/parser_testcases/general/generic_function_typedef.dart.expect
index ec7a398..dca4bd9 100644
--- a/pkg/front_end/parser_testcases/general/generic_function_typedef.dart.expect
+++ b/pkg/front_end/parser_testcases/general/generic_function_typedef.dart.expect
@@ -830,7 +830,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       beginFunctionType(void)
         beginTypeVariables(<)
           beginMetadataStar(T)
@@ -852,7 +852,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       beginFunctionType(void)
         beginTypeVariables(<)
           beginMetadataStar(T)
@@ -876,7 +876,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       beginFunctionType(void)
         beginTypeVariables(<)
           beginMetadataStar(T)
@@ -904,7 +904,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       beginFunctionType(void)
         beginTypeVariables(<)
           beginMetadataStar(T)
@@ -936,7 +936,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       beginFunctionType(void)
         beginTypeVariables(<)
           beginMetadataStar(T)
@@ -968,7 +968,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       beginFunctionType(void)
         beginTypeVariables(<)
           beginMetadataStar(T)
@@ -1000,7 +1000,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleNoType(;)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/generic_function_typedef.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/generic_function_typedef.dart.intertwined.expect
index e5525f37..f2c7a7f 100644
--- a/pkg/front_end/parser_testcases/general/generic_function_typedef.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/generic_function_typedef.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(, typedef)
+    parseTopLevelKeywordDeclaration(, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -37,8 +36,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -72,8 +70,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -113,8 +110,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -158,8 +154,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -203,8 +198,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -248,8 +242,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -279,8 +272,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -314,8 +306,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -355,8 +346,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -400,8 +390,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -445,8 +434,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -490,8 +478,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -533,8 +520,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -580,8 +566,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -643,8 +628,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -710,8 +694,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -767,8 +750,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -824,8 +806,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -871,8 +852,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -922,8 +902,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -979,8 +958,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1040,8 +1018,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1101,8 +1078,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1164,8 +1140,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(void)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f1, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f1, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: beginFunctionType(void)
         listener: beginTypeVariables(<)
         listener: beginMetadataStar(T)
@@ -1184,7 +1160,7 @@
         listener: endFunctionType(Function, null)
         ensureIdentifierPotentiallyRecovered(), topLevelVariableDeclaration, false)
           listener: handleIdentifier(f1, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(f1, f1, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(f1, f1, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, null, null, 1, void, ;)
   listener: endTopLevelDeclaration(void)
@@ -1194,8 +1170,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(void)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f2, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f2, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: beginFunctionType(void)
         listener: beginTypeVariables(<)
         parseMetadataStar(<)
@@ -1218,7 +1194,7 @@
         listener: endFunctionType(Function, null)
         ensureIdentifierPotentiallyRecovered(), topLevelVariableDeclaration, false)
           listener: handleIdentifier(f2, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(f2, f2, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(f2, f2, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, null, null, 1, void, ;)
   listener: endTopLevelDeclaration(void)
@@ -1228,8 +1204,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(void)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f3, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f3, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: beginFunctionType(void)
         listener: beginTypeVariables(<)
         parseMetadataStar(<)
@@ -1258,7 +1234,7 @@
         listener: endFunctionType(Function, null)
         ensureIdentifierPotentiallyRecovered(), topLevelVariableDeclaration, false)
           listener: handleIdentifier(f3, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(f3, f3, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(f3, f3, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, null, null, 1, void, ;)
   listener: endTopLevelDeclaration(void)
@@ -1268,8 +1244,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(void)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f4, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f4, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: beginFunctionType(void)
         listener: beginTypeVariables(<)
         parseMetadataStar(<)
@@ -1302,7 +1278,7 @@
         listener: endFunctionType(Function, null)
         ensureIdentifierPotentiallyRecovered(), topLevelVariableDeclaration, false)
           listener: handleIdentifier(f4, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(f4, f4, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(f4, f4, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, null, null, 1, void, ;)
   listener: endTopLevelDeclaration(void)
@@ -1312,8 +1288,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(void)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f5, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f5, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: beginFunctionType(void)
         listener: beginTypeVariables(<)
         parseMetadataStar(<)
@@ -1346,7 +1322,7 @@
         listener: endFunctionType(Function, null)
         ensureIdentifierPotentiallyRecovered(), topLevelVariableDeclaration, false)
           listener: handleIdentifier(f5, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(f5, f5, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(f5, f5, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, null, null, 1, void, ;)
   listener: endTopLevelDeclaration(void)
@@ -1356,8 +1332,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(void)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f6, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'ComplexTypeInfo', f6, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: beginFunctionType(void)
         listener: beginTypeVariables(<)
         parseMetadataStar(<)
@@ -1390,7 +1366,7 @@
         listener: endFunctionType(Function, null)
         ensureIdentifierPotentiallyRecovered(), topLevelVariableDeclaration, false)
           listener: handleIdentifier(f6, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(f6, f6, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(f6, f6, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, null, null, 1, void, ;)
   listener: endTopLevelDeclaration(main)
@@ -1401,8 +1377,8 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleNoType(;)
         ensureIdentifierPotentiallyRecovered(;, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/issue_41121.dart.expect b/pkg/front_end/parser_testcases/general/issue_41121.dart.expect
index 98af14a..c0dc534 100644
--- a/pkg/front_end/parser_testcases/general/issue_41121.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_41121.dart.expect
@@ -56,13 +56,13 @@
         beginMetadataStar(Configuration)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(Configuration, typeReference)
             handleNoTypeArguments(_configuration)
             handleType(Configuration, null)
             handleIdentifier(_configuration, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 1, Configuration, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, Configuration, ;)
         endMember()
         beginMetadataStar(ConfigurationService)
         endMetadataStar(0)
diff --git a/pkg/front_end/parser_testcases/general/issue_41121.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/issue_41121.dart.intertwined.expect
index 98f1cbf..6b04848 100644
--- a/pkg/front_end/parser_testcases/general/issue_41121.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/issue_41121.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,16 +31,16 @@
                 listener: beginMetadataStar(Configuration)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', _configuration, DeclarationKind.Class, ConfigurationService, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              parseFields({, null, null, null, null, null, null, null, {, Instance of 'SimpleType', _configuration, DeclarationKind.Class, ConfigurationService, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                 listener: handleIdentifier(Configuration, typeReference)
                 listener: handleNoTypeArguments(_configuration)
                 listener: handleType(Configuration, null)
                 ensureIdentifierPotentiallyRecovered(Configuration, fieldDeclaration, false)
                   listener: handleIdentifier(_configuration, fieldDeclaration)
-                parseFieldInitializerOpt(_configuration, _configuration, null, null, null, null, DeclarationKind.Class, ConfigurationService)
+                parseFieldInitializerOpt(_configuration, _configuration, null, null, null, null, null, DeclarationKind.Class, ConfigurationService)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 1, Configuration, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, Configuration, ;)
               listener: endMember()
             notEofOrValue(}, ConfigurationService)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, ConfigurationService)
@@ -511,8 +510,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/issue_45120.dart.expect b/pkg/front_end/parser_testcases/general/issue_45120.dart.expect
index be61163..911e2dd 100644
--- a/pkg/front_end/parser_testcases/general/issue_45120.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45120.dart.expect
@@ -87,7 +87,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleVoidKeyword(void)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/issue_45120.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/issue_45120.dart.intertwined.expect
index ae4e0793..a2eaf9f 100644
--- a/pkg/front_end/parser_testcases/general/issue_45120.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45120.dart.intertwined.expect
@@ -28,8 +28,7 @@
               listener: endArguments(1, (, ))
         listener: endMetadata(@, null, typedef)
       listener: endMetadataStar(1)
-    parseTopLevelKeywordDeclaration(), typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(), typedef)
+    parseTopLevelKeywordDeclaration(), typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -153,8 +152,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(;, null, ;, Instance of 'VoidType', null, main, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'VoidType', null, main, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/issue_45848_01.dart.expect b/pkg/front_end/parser_testcases/general/issue_45848_01.dart.expect
index 56fea87..213652b 100644
--- a/pkg/front_end/parser_testcases/general/issue_45848_01.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45848_01.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -54,7 +54,7 @@
   beginMetadataStar(g)
   endMetadataStar(0)
   beginTopLevelMember(g)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(g, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -126,7 +126,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/issue_45848_01.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/issue_45848_01.dart.intertwined.expect
index e11f90e..fb14934 100644
--- a/pkg/front_end/parser_testcases/general/issue_45848_01.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45848_01.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
@@ -117,8 +117,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(g)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, g, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, g, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(g, topLevelFunctionDeclaration)
@@ -273,8 +273,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/issue_45848_01_prime.dart.expect b/pkg/front_end/parser_testcases/general/issue_45848_01_prime.dart.expect
index 783ba33..2f24240 100644
--- a/pkg/front_end/parser_testcases/general/issue_45848_01_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45848_01_prime.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -54,7 +54,7 @@
   beginMetadataStar(g)
   endMetadataStar(0)
   beginTopLevelMember(g)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(g, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -127,7 +127,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/issue_45848_01_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/issue_45848_01_prime.dart.intertwined.expect
index b3285c7..c5323dd 100644
--- a/pkg/front_end/parser_testcases/general/issue_45848_01_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45848_01_prime.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
@@ -117,8 +117,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(g)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, g, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, g, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(g, topLevelFunctionDeclaration)
@@ -282,8 +282,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/issue_45848_02.dart.expect b/pkg/front_end/parser_testcases/general/issue_45848_02.dart.expect
index bb09df4..55f2041 100644
--- a/pkg/front_end/parser_testcases/general/issue_45848_02.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45848_02.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -54,7 +54,7 @@
   beginMetadataStar(g)
   endMetadataStar(0)
   beginTopLevelMember(g)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(g, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -125,7 +125,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/issue_45848_02.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/issue_45848_02.dart.intertwined.expect
index 5267088..364c2db 100644
--- a/pkg/front_end/parser_testcases/general/issue_45848_02.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45848_02.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
@@ -117,8 +117,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(g)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, g, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, g, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(g, topLevelFunctionDeclaration)
@@ -273,8 +273,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/issue_45848_02_prime.dart.expect b/pkg/front_end/parser_testcases/general/issue_45848_02_prime.dart.expect
index ee5784b..6d2ad97 100644
--- a/pkg/front_end/parser_testcases/general/issue_45848_02_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45848_02_prime.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -54,7 +54,7 @@
   beginMetadataStar(g)
   endMetadataStar(0)
   beginTopLevelMember(g)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(g, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -126,7 +126,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/issue_45848_02_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/issue_45848_02_prime.dart.intertwined.expect
index 6809693..917e374 100644
--- a/pkg/front_end/parser_testcases/general/issue_45848_02_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45848_02_prime.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
@@ -117,8 +117,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(g)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, g, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, g, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(g, topLevelFunctionDeclaration)
@@ -282,8 +282,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/issue_45848_03.dart.expect b/pkg/front_end/parser_testcases/general/issue_45848_03.dart.expect
index 2af7731..6b1850a 100644
--- a/pkg/front_end/parser_testcases/general/issue_45848_03.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45848_03.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -54,7 +54,7 @@
   beginMetadataStar(g)
   endMetadataStar(0)
   beginTopLevelMember(g)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(g, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -144,7 +144,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/issue_45848_03.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/issue_45848_03.dart.intertwined.expect
index 2ceba23..9f9ba52 100644
--- a/pkg/front_end/parser_testcases/general/issue_45848_03.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45848_03.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
@@ -117,8 +117,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(g)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, g, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, g, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(g, topLevelFunctionDeclaration)
@@ -311,8 +311,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/issue_45848_03_prime.dart.expect b/pkg/front_end/parser_testcases/general/issue_45848_03_prime.dart.expect
index ec48ff4..af3542b 100644
--- a/pkg/front_end/parser_testcases/general/issue_45848_03_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45848_03_prime.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -54,7 +54,7 @@
   beginMetadataStar(g)
   endMetadataStar(0)
   beginTopLevelMember(g)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(g, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -145,7 +145,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/issue_45848_03_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/issue_45848_03_prime.dart.intertwined.expect
index 48f9c8b..0d4dd9d 100644
--- a/pkg/front_end/parser_testcases/general/issue_45848_03_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45848_03_prime.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
@@ -117,8 +117,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(g)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, g, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, g, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(g, topLevelFunctionDeclaration)
@@ -320,8 +320,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/issue_45848_04.dart.expect b/pkg/front_end/parser_testcases/general/issue_45848_04.dart.expect
index 5804baa..d6b9eeb 100644
--- a/pkg/front_end/parser_testcases/general/issue_45848_04.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45848_04.dart.expect
@@ -8,7 +8,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       beginTypeVariables(<)
@@ -30,7 +30,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(m, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/issue_45848_04.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/issue_45848_04.dart.intertwined.expect
index 2611916..c2d87c4 100644
--- a/pkg/front_end/parser_testcases/general/issue_45848_04.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45848_04.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
@@ -43,8 +43,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, m, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, m, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(m, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/issue_45848_04_prime.dart.expect b/pkg/front_end/parser_testcases/general/issue_45848_04_prime.dart.expect
index 72c0d1a..6152cb1 100644
--- a/pkg/front_end/parser_testcases/general/issue_45848_04_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45848_04_prime.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       beginTypeVariables(<)
@@ -24,7 +24,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(m, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/issue_45848_04_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/issue_45848_04_prime.dart.intertwined.expect
index 8c886bc..31583f3 100644
--- a/pkg/front_end/parser_testcases/general/issue_45848_04_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/issue_45848_04_prime.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
@@ -43,8 +43,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, m, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, m, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(m, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/issue_47008_01.dart.expect b/pkg/front_end/parser_testcases/general/issue_47008_01.dart.expect
index c74a161..c08a421 100644
--- a/pkg/front_end/parser_testcases/general/issue_47008_01.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_47008_01.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/issue_47008_01.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/issue_47008_01.dart.intertwined.expect
index 406fe2c..cb4e3f7 100644
--- a/pkg/front_end/parser_testcases/general/issue_47008_01.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/issue_47008_01.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/issue_47008_02.dart.expect b/pkg/front_end/parser_testcases/general/issue_47008_02.dart.expect
index f0770d5..db45d9b 100644
--- a/pkg/front_end/parser_testcases/general/issue_47008_02.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_47008_02.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/issue_47008_02.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/issue_47008_02.dart.intertwined.expect
index 4f3fe74..075efbb 100644
--- a/pkg/front_end/parser_testcases/general/issue_47008_02.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/issue_47008_02.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/issue_47009_01.dart.expect b/pkg/front_end/parser_testcases/general/issue_47009_01.dart.expect
index 5e09e8f..2842fa7 100644
--- a/pkg/front_end/parser_testcases/general/issue_47009_01.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_47009_01.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/issue_47009_01.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/issue_47009_01.dart.intertwined.expect
index 1876a12..abc7128 100644
--- a/pkg/front_end/parser_testcases/general/issue_47009_01.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/issue_47009_01.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/issue_47009_02.dart.expect b/pkg/front_end/parser_testcases/general/issue_47009_02.dart.expect
index a4e0369..398a61b 100644
--- a/pkg/front_end/parser_testcases/general/issue_47009_02.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_47009_02.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/issue_47009_02.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/issue_47009_02.dart.intertwined.expect
index 91cb220..d752307 100644
--- a/pkg/front_end/parser_testcases/general/issue_47009_02.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/issue_47009_02.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/issue_47009_03.dart.expect b/pkg/front_end/parser_testcases/general/issue_47009_03.dart.expect
index 1170055..f6b6a1f 100644
--- a/pkg/front_end/parser_testcases/general/issue_47009_03.dart.expect
+++ b/pkg/front_end/parser_testcases/general/issue_47009_03.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/issue_47009_03.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/issue_47009_03.dart.intertwined.expect
index d685108..935f19a 100644
--- a/pkg/front_end/parser_testcases/general/issue_47009_03.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/issue_47009_03.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/metadata.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/metadata.dart.intertwined.expect
index eedd4f5..e61e6cb 100644
--- a/pkg/front_end/parser_testcases/general/metadata.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/metadata.dart.intertwined.expect
@@ -228,8 +228,7 @@
               listener: endArguments(1, (, ))
         listener: endMetadata(@, ., class)
       listener: endMetadataStar(10)
-    parseTopLevelKeywordDeclaration(), class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(), class)
+    parseTopLevelKeywordDeclaration(), class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -256,8 +255,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(}, typedef)
+    parseTopLevelKeywordDeclaration(}, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -343,8 +341,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -442,8 +439,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -547,8 +543,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -664,8 +659,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -796,8 +790,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -934,8 +927,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1063,8 +1055,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1201,8 +1192,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1342,8 +1332,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(typedef)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, typedef, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(;, typedef)
+    parseTopLevelKeywordDeclaration(;, typedef, null, Instance of 'DirectiveContext')
       parseTypedef(typedef)
         listener: beginUncategorizedTopLevelDeclaration(typedef)
         listener: beginTypedef(typedef)
@@ -1713,8 +1702,7 @@
               listener: endArguments(1, (, ))
         listener: endMetadata(@, ., class)
       listener: endMetadataStar(9)
-    parseTopLevelKeywordDeclaration(), class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(), class)
+    parseTopLevelKeywordDeclaration(), class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/missing_end_bracket.dart.expect b/pkg/front_end/parser_testcases/general/missing_end_bracket.dart.expect
index 0d03eb7..5d6d871 100644
--- a/pkg/front_end/parser_testcases/general/missing_end_bracket.dart.expect
+++ b/pkg/front_end/parser_testcases/general/missing_end_bracket.dart.expect
@@ -8,7 +8,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(UnmatchedToken({), null)
+    beginTopLevelMethod(UnmatchedToken({), null, null)
       handleNoType(UnmatchedToken({))
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/missing_end_bracket.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/missing_end_bracket.dart.intertwined.expect
index f0cb42b..2fec437 100644
--- a/pkg/front_end/parser_testcases/general/missing_end_bracket.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/missing_end_bracket.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl(UnmatchedToken({))
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(UnmatchedToken({), null, UnmatchedToken({), Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(UnmatchedToken({), null)
+      parseTopLevelMethod(UnmatchedToken({), null, null, UnmatchedToken({), Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(UnmatchedToken({), null, null)
         listener: handleNoType(UnmatchedToken({))
         ensureIdentifierPotentiallyRecovered(UnmatchedToken({), topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/new_as_identifier.dart.expect b/pkg/front_end/parser_testcases/general/new_as_identifier.dart.expect
index 3a2172f..1941c5b 100644
--- a/pkg/front_end/parser_testcases/general/new_as_identifier.dart.expect
+++ b/pkg/front_end/parser_testcases/general/new_as_identifier.dart.expect
@@ -332,7 +332,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, })
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, })
       handleNoType(var)
       handleIdentifier(constructor_invocation_const, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -354,7 +354,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_invocation_const_generic, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -378,7 +378,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_invocation_const_prefixed, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -400,7 +400,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_invocation_const_prefixed_generic, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -426,7 +426,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_invocation_explicit, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -448,7 +448,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_invocation_explicit_generic, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -472,7 +472,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_invocation_explicit_prefixed, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -494,7 +494,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_invocation_explicit_prefixed_generic, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -520,7 +520,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_invocation_implicit, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -541,7 +541,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_invocation_implicit_generic, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -565,7 +565,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_invocation_implicit_prefixed, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -591,7 +591,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_invocation_implicit_prefixed_generic, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -617,7 +617,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_tearoff, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -637,7 +637,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_tearoff_generic, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -663,7 +663,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_tearoff_generic_method_invocation, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -695,7 +695,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_tearoff_method_invocation, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -721,7 +721,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_tearoff_prefixed, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -746,7 +746,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_tearoff_prefixed_generic, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -777,7 +777,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_tearoff_prefixed_generic_method_invocation, topLevelVariableDeclaration)
       beginFieldInitializer(=)
@@ -814,7 +814,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
       handleNoType(var)
       handleIdentifier(constructor_tearoff_prefixed_method_invocation, topLevelVariableDeclaration)
       beginFieldInitializer(=)
diff --git a/pkg/front_end/parser_testcases/general/new_as_identifier.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/new_as_identifier.dart.intertwined.expect
index 1ffccf3..37068d2 100644
--- a/pkg/front_end/parser_testcases/general/new_as_identifier.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/new_as_identifier.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -153,7 +152,7 @@
                 listener: beginMetadataStar(new)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(}, }, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, C)
+              recoverFromInvalidMember(}, }, null, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, C)
                 reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
                   listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'new'., null, {lexeme: new}], new, new)
                 listener: handleInvalidMember(new)
@@ -164,7 +163,7 @@
                 listener: beginMetadataStar(=)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(new, new, null, null, null, null, null, null, new, Instance of 'NoType', null, DeclarationKind.Class, C)
+              recoverFromInvalidMember(new, new, null, null, null, null, null, null, null, new, Instance of 'NoType', null, DeclarationKind.Class, C)
                 parseInvalidOperatorDeclaration(new, null, null, null, null, null, null, new, DeclarationKind.Class, C)
                   reportRecoverableError(=, MissingOperatorKeyword)
                     listener: handleRecoverableError(MissingOperatorKeyword, =, =)
@@ -209,7 +208,7 @@
                 listener: beginMetadataStar(null)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(}, }, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, C)
+              recoverFromInvalidMember(}, }, null, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, C)
                 reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
                   listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'null'., null, {lexeme: null}], null, null)
                 listener: handleInvalidMember(null)
@@ -220,7 +219,7 @@
                 listener: beginMetadataStar(;)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(null, null, null, null, null, null, null, null, null, Instance of 'NoType', null, DeclarationKind.Class, C)
+              recoverFromInvalidMember(null, null, null, null, null, null, null, null, null, null, Instance of 'NoType', null, DeclarationKind.Class, C)
                 reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
                   listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {lexeme: ;}], ;, ;)
                 listener: handleInvalidMember(;)
@@ -233,8 +232,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -626,12 +624,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(var)
-      parseFields(}, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_const, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, })
+      parseFields(}, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_const, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, })
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_invocation_const, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_invocation_const, constructor_invocation_const, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_invocation_const, constructor_invocation_const, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -667,12 +665,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_const_generic, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_const_generic, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_invocation_const_generic, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_invocation_const_generic, constructor_invocation_const_generic, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_invocation_const_generic, constructor_invocation_const_generic, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -709,12 +707,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_const_prefixed, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_const_prefixed, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_invocation_const_prefixed, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_invocation_const_prefixed, constructor_invocation_const_prefixed, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_invocation_const_prefixed, constructor_invocation_const_prefixed, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -751,12 +749,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_const_prefixed_generic, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_const_prefixed_generic, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_invocation_const_prefixed_generic, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_invocation_const_prefixed_generic, constructor_invocation_const_prefixed_generic, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_invocation_const_prefixed_generic, constructor_invocation_const_prefixed_generic, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -797,12 +795,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_explicit, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_explicit, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_invocation_explicit, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_invocation_explicit, constructor_invocation_explicit, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_invocation_explicit, constructor_invocation_explicit, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -839,12 +837,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_explicit_generic, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_explicit_generic, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_invocation_explicit_generic, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_invocation_explicit_generic, constructor_invocation_explicit_generic, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_invocation_explicit_generic, constructor_invocation_explicit_generic, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -882,12 +880,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_explicit_prefixed, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_explicit_prefixed, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_invocation_explicit_prefixed, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_invocation_explicit_prefixed, constructor_invocation_explicit_prefixed, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_invocation_explicit_prefixed, constructor_invocation_explicit_prefixed, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -925,12 +923,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_explicit_prefixed_generic, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_explicit_prefixed_generic, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_invocation_explicit_prefixed_generic, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_invocation_explicit_prefixed_generic, constructor_invocation_explicit_prefixed_generic, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_invocation_explicit_prefixed_generic, constructor_invocation_explicit_prefixed_generic, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -972,12 +970,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_implicit, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_implicit, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_invocation_implicit, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_invocation_implicit, constructor_invocation_implicit, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_invocation_implicit, constructor_invocation_implicit, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1018,12 +1016,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_implicit_generic, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_implicit_generic, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_invocation_implicit_generic, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_invocation_implicit_generic, constructor_invocation_implicit_generic, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_invocation_implicit_generic, constructor_invocation_implicit_generic, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1059,12 +1057,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_implicit_prefixed, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_implicit_prefixed, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_invocation_implicit_prefixed, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_invocation_implicit_prefixed, constructor_invocation_implicit_prefixed, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_invocation_implicit_prefixed, constructor_invocation_implicit_prefixed, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1116,12 +1114,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_implicit_prefixed_generic, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_invocation_implicit_prefixed_generic, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_invocation_implicit_prefixed_generic, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_invocation_implicit_prefixed_generic, constructor_invocation_implicit_prefixed_generic, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_invocation_implicit_prefixed_generic, constructor_invocation_implicit_prefixed_generic, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1161,12 +1159,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_tearoff, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_tearoff, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_tearoff, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_tearoff, constructor_tearoff, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_tearoff, constructor_tearoff, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1203,12 +1201,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_tearoff_generic, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_tearoff_generic, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_tearoff_generic, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_tearoff_generic, constructor_tearoff_generic, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_tearoff_generic, constructor_tearoff_generic, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1251,12 +1249,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_tearoff_generic_method_invocation, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_tearoff_generic_method_invocation, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_tearoff_generic_method_invocation, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_tearoff_generic_method_invocation, constructor_tearoff_generic_method_invocation, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_tearoff_generic_method_invocation, constructor_tearoff_generic_method_invocation, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1314,12 +1312,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_tearoff_method_invocation, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_tearoff_method_invocation, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_tearoff_method_invocation, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_tearoff_method_invocation, constructor_tearoff_method_invocation, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_tearoff_method_invocation, constructor_tearoff_method_invocation, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1371,12 +1369,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_tearoff_prefixed, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_tearoff_prefixed, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_tearoff_prefixed, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_tearoff_prefixed, constructor_tearoff_prefixed, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_tearoff_prefixed, constructor_tearoff_prefixed, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1424,12 +1422,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_tearoff_prefixed_generic, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_tearoff_prefixed_generic, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_tearoff_prefixed_generic, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_tearoff_prefixed_generic, constructor_tearoff_prefixed_generic, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_tearoff_prefixed_generic, constructor_tearoff_prefixed_generic, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1483,12 +1481,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_tearoff_prefixed_generic_method_invocation, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_tearoff_prefixed_generic_method_invocation, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_tearoff_prefixed_generic_method_invocation, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_tearoff_prefixed_generic_method_invocation, constructor_tearoff_prefixed_generic_method_invocation, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_tearoff_prefixed_generic_method_invocation, constructor_tearoff_prefixed_generic_method_invocation, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
@@ -1557,12 +1555,12 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(var)
-      parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', constructor_tearoff_prefixed_method_invocation, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, ;)
+      parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', constructor_tearoff_prefixed_method_invocation, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, ;)
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(constructor_tearoff_prefixed_method_invocation, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(constructor_tearoff_prefixed_method_invocation, constructor_tearoff_prefixed_method_invocation, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(constructor_tearoff_prefixed_method_invocation, constructor_tearoff_prefixed_method_invocation, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
           parseExpression(=)
             parsePrecedenceExpression(=, 1, true)
diff --git a/pkg/front_end/parser_testcases/general/operator_01.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/operator_01.dart.intertwined.expect
index 74b0981..519a75c 100644
--- a/pkg/front_end/parser_testcases/general/operator_01.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/operator_01.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.intertwined.expect
index bade773..6e0e362 100644
--- a/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/try_catch.dart.expect b/pkg/front_end/parser_testcases/general/try_catch.dart.expect
index 72dfdce..3632e57 100644
--- a/pkg/front_end/parser_testcases/general/try_catch.dart.expect
+++ b/pkg/front_end/parser_testcases/general/try_catch.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/try_catch.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/try_catch.dart.intertwined.expect
index ec37294..e241c98 100644
--- a/pkg/front_end/parser_testcases/general/try_catch.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/try_catch.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/general/try_finally.dart.expect b/pkg/front_end/parser_testcases/general/try_finally.dart.expect
index 8f0f03e..032ea2e 100644
--- a/pkg/front_end/parser_testcases/general/try_finally.dart.expect
+++ b/pkg/front_end/parser_testcases/general/try_finally.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/general/try_finally.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/try_finally.dart.intertwined.expect
index 4e09409..fe8200b 100644
--- a/pkg/front_end/parser_testcases/general/try_finally.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/try_finally.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/macros/augment_class.dart.expect b/pkg/front_end/parser_testcases/macros/augment_class.dart.expect
index 58bcf95..fd173c1 100644
--- a/pkg/front_end/parser_testcases/macros/augment_class.dart.expect
+++ b/pkg/front_end/parser_testcases/macros/augment_class.dart.expect
@@ -1,10 +1,63 @@
+Problems reported:
+
+parser/macros/augment_class:1:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+augment class Class {}
+^^^^^^^
+
+parser/macros/augment_class:1:1: Expected ';' after this.
+augment class Class {}
+^^^^^^^
+
+parser/macros/augment_class:2:1: Can't have modifier 'abstract' here.
+abstract augment class Class {}
+^^^^^^^^
+
+parser/macros/augment_class:2:10: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+abstract augment class Class {}
+         ^^^^^^^
+
+parser/macros/augment_class:2:10: Expected ';' after this.
+abstract augment class Class {}
+         ^^^^^^^
+
+parser/macros/augment_class:3:1: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+augment class Class = Object with Mixin;
+^^^^^^^
+
+parser/macros/augment_class:3:1: Expected ';' after this.
+augment class Class = Object with Mixin;
+^^^^^^^
+
+parser/macros/augment_class:4:1: Can't have modifier 'abstract' here.
+abstract augment class Class = Object with Mixin;
+^^^^^^^^
+
+parser/macros/augment_class:4:10: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+abstract augment class Class = Object with Mixin;
+         ^^^^^^^
+
+parser/macros/augment_class:4:10: Expected ';' after this.
+abstract augment class Class = Object with Mixin;
+         ^^^^^^^
+
 beginCompilationUnit(augment)
   beginMetadataStar(augment)
   endMetadataStar(0)
+  beginTopLevelMember(augment)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
+      handleRecoverableError(MissingConstFinalVarOrType, augment, augment)
+      handleNoType()
+      handleIdentifier(augment, topLevelVariableDeclaration)
+      handleNoFieldInitializer(class)
+      handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], augment, augment)
+    endTopLevelFields(null, null, null, null, null, 1, augment, ;)
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
   beginClassOrMixinOrNamedMixinApplicationPrelude(class)
     handleIdentifier(Class, classOrMixinDeclaration)
     handleNoTypeVariables({)
-    beginClassDeclaration(class, null, null, augment, Class)
+    beginClassDeclaration(class, null, null, null, Class)
       handleNoType(Class)
       handleClassExtends(null, 1)
       handleClassNoWithClause()
@@ -16,25 +69,48 @@
   endTopLevelDeclaration(abstract)
   beginMetadataStar(abstract)
   endMetadataStar(0)
-  beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
+  beginTopLevelMember(abstract)
+    handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'abstract' here., Try removing 'abstract'., {lexeme: abstract}], abstract, abstract)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, })
+      handleRecoverableError(MissingConstFinalVarOrType, augment, augment)
+      handleNoType(abstract)
+      handleIdentifier(augment, topLevelVariableDeclaration)
+      handleNoFieldInitializer(class)
+      handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], augment, augment)
+    endTopLevelFields(null, null, null, null, null, 1, abstract, ;)
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
     handleIdentifier(Class, classOrMixinDeclaration)
     handleNoTypeVariables({)
-    beginClassDeclaration(abstract, abstract, null, augment, Class)
+    beginClassDeclaration(class, null, null, null, Class)
       handleNoType(Class)
       handleClassExtends(null, 1)
       handleClassNoWithClause()
       handleImplements(null, 0)
-      handleClassHeader(abstract, class, null)
+      handleClassHeader(class, class, null)
       beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
-    endClassDeclaration(abstract, })
+    endClassDeclaration(class, })
   endTopLevelDeclaration(augment)
   beginMetadataStar(augment)
   endMetadataStar(0)
+  beginTopLevelMember(augment)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, })
+      handleRecoverableError(MissingConstFinalVarOrType, augment, augment)
+      handleNoType(})
+      handleIdentifier(augment, topLevelVariableDeclaration)
+      handleNoFieldInitializer(class)
+      handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], augment, augment)
+    endTopLevelFields(null, null, null, null, null, 1, augment, ;)
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
   beginClassOrMixinOrNamedMixinApplicationPrelude(class)
     handleIdentifier(Class, classOrMixinDeclaration)
     handleNoTypeVariables(=)
-    beginNamedMixinApplication(class, null, null, augment, Class)
+    beginNamedMixinApplication(class, null, null, null, Class)
       handleIdentifier(Object, typeReference)
       handleNoTypeArguments(with)
       handleType(Object, null)
@@ -48,10 +124,22 @@
   endTopLevelDeclaration(abstract)
   beginMetadataStar(abstract)
   endMetadataStar(0)
-  beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
+  beginTopLevelMember(abstract)
+    handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'abstract' here., Try removing 'abstract'., {lexeme: abstract}], abstract, abstract)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
+      handleRecoverableError(MissingConstFinalVarOrType, augment, augment)
+      handleNoType(abstract)
+      handleIdentifier(augment, topLevelVariableDeclaration)
+      handleNoFieldInitializer(class)
+      handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], augment, augment)
+    endTopLevelFields(null, null, null, null, null, 1, abstract, ;)
+  endTopLevelDeclaration(class)
+  beginMetadataStar(class)
+  endMetadataStar(0)
+  beginClassOrMixinOrNamedMixinApplicationPrelude(class)
     handleIdentifier(Class, classOrMixinDeclaration)
     handleNoTypeVariables(=)
-    beginNamedMixinApplication(abstract, abstract, null, augment, Class)
+    beginNamedMixinApplication(class, null, null, null, Class)
       handleIdentifier(Object, typeReference)
       handleNoTypeArguments(with)
       handleType(Object, null)
@@ -61,6 +149,6 @@
         handleType(Mixin, null)
       endTypeList(1)
       handleNamedMixinApplicationWithClause(with)
-    endNamedMixinApplication(abstract, class, =, null, ;)
+    endNamedMixinApplication(class, class, =, null, ;)
   endTopLevelDeclaration()
-endCompilationUnit(4, )
+endCompilationUnit(8, )
diff --git a/pkg/front_end/parser_testcases/macros/augment_class.dart.intertwined.expect b/pkg/front_end/parser_testcases/macros/augment_class.dart.intertwined.expect
index 3fde810..6f3bad2 100644
--- a/pkg/front_end/parser_testcases/macros/augment_class.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/macros/augment_class.dart.intertwined.expect
@@ -6,14 +6,36 @@
     parseMetadataStar()
       listener: beginMetadataStar(augment)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, augment, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, augment)
-      parseClassOrNamedMixinApplication(null, null, augment, class)
+    parseTopLevelMemberImpl()
+      listener: beginTopLevelMember(augment)
+      isReservedKeyword(class)
+      indicatesMethodOrField(Class)
+      parseFields(, null, null, null, null, null, null, null, , Instance of 'NoType', augment, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
+        reportRecoverableError(augment, MissingConstFinalVarOrType)
+          listener: handleRecoverableError(MissingConstFinalVarOrType, augment, augment)
+        listener: handleNoType()
+        ensureIdentifierPotentiallyRecovered(, topLevelVariableDeclaration, false)
+          listener: handleIdentifier(augment, topLevelVariableDeclaration)
+        parseFieldInitializerOpt(augment, augment, null, null, null, null, null, DeclarationKind.TopLevel, null)
+          listener: handleNoFieldInitializer(class)
+        ensureSemicolon(augment)
+          reportRecoverableError(augment, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], augment, augment)
+          rewriter()
+        listener: endTopLevelFields(null, null, null, null, null, 1, augment, ;)
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
+      parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
           listener: handleIdentifier(Class, classOrMixinDeclaration)
         listener: handleNoTypeVariables({)
-        listener: beginClassDeclaration(class, null, null, augment, Class)
+        listener: beginClassDeclaration(class, null, null, null, Class)
         parseClass(Class, class, class, Class)
           parseClassHeaderOpt(Class, class, class)
             parseClassExtendsOpt(Class)
@@ -34,17 +56,40 @@
     parseMetadataStar(})
       listener: beginMetadataStar(abstract)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, augment, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, augment)
-        parseTopLevelKeywordModifiers(abstract, augment)
-      parseClassOrNamedMixinApplication(abstract, null, augment, class)
-        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(abstract)
+      reportRecoverableErrorWithToken(abstract, Instance of 'Template<(Token) => Message>')
+        listener: handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'abstract' here., Try removing 'abstract'., {lexeme: abstract}], abstract, abstract)
+      isReservedKeyword(class)
+      indicatesMethodOrField(Class)
+      parseFields(}, null, null, null, null, null, null, null, abstract, Instance of 'NoType', augment, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, })
+        reportRecoverableError(augment, MissingConstFinalVarOrType)
+          listener: handleRecoverableError(MissingConstFinalVarOrType, augment, augment)
+        listener: handleNoType(abstract)
+        ensureIdentifierPotentiallyRecovered(abstract, topLevelVariableDeclaration, false)
+          listener: handleIdentifier(augment, topLevelVariableDeclaration)
+        parseFieldInitializerOpt(augment, augment, null, null, null, null, null, DeclarationKind.TopLevel, null)
+          listener: handleNoFieldInitializer(class)
+        ensureSemicolon(augment)
+          reportRecoverableError(augment, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], augment, augment)
+          rewriter()
+        listener: endTopLevelFields(null, null, null, null, null, 1, abstract, ;)
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
           listener: handleIdentifier(Class, classOrMixinDeclaration)
         listener: handleNoTypeVariables({)
-        listener: beginClassDeclaration(abstract, abstract, null, augment, Class)
-        parseClass(Class, abstract, class, Class)
-          parseClassHeaderOpt(Class, abstract, class)
+        listener: beginClassDeclaration(class, null, null, null, Class)
+        parseClass(Class, class, class, Class)
+          parseClassHeaderOpt(Class, class, class)
             parseClassExtendsOpt(Class)
               listener: handleNoType(Class)
               listener: handleClassExtends(null, 1)
@@ -52,25 +97,47 @@
               listener: handleClassNoWithClause()
             parseClassOrMixinOrEnumImplementsOpt(Class)
               listener: handleImplements(null, 0)
-            listener: handleClassHeader(abstract, class, null)
+            listener: handleClassHeader(class, class, null)
           parseClassOrMixinOrExtensionBody(Class, DeclarationKind.Class, Class)
             listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
-          listener: endClassDeclaration(abstract, })
+          listener: endClassDeclaration(class, })
   listener: endTopLevelDeclaration(augment)
   parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
     parseMetadataStar(})
       listener: beginMetadataStar(augment)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, augment, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, augment)
-      parseClassOrNamedMixinApplication(null, null, augment, class)
+    parseTopLevelMemberImpl(})
+      listener: beginTopLevelMember(augment)
+      isReservedKeyword(class)
+      indicatesMethodOrField(Class)
+      parseFields(}, null, null, null, null, null, null, null, }, Instance of 'NoType', augment, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, })
+        reportRecoverableError(augment, MissingConstFinalVarOrType)
+          listener: handleRecoverableError(MissingConstFinalVarOrType, augment, augment)
+        listener: handleNoType(})
+        ensureIdentifierPotentiallyRecovered(}, topLevelVariableDeclaration, false)
+          listener: handleIdentifier(augment, topLevelVariableDeclaration)
+        parseFieldInitializerOpt(augment, augment, null, null, null, null, null, DeclarationKind.TopLevel, null)
+          listener: handleNoFieldInitializer(class)
+        ensureSemicolon(augment)
+          reportRecoverableError(augment, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], augment, augment)
+          rewriter()
+        listener: endTopLevelFields(null, null, null, null, null, 1, augment, ;)
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
+      parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
           listener: handleIdentifier(Class, classOrMixinDeclaration)
         listener: handleNoTypeVariables(=)
-        listener: beginNamedMixinApplication(class, null, null, augment, Class)
+        listener: beginNamedMixinApplication(class, null, null, null, Class)
         parseNamedMixinApplication(Class, class, class)
           listener: handleIdentifier(Object, typeReference)
           listener: handleNoTypeArguments(with)
@@ -90,16 +157,39 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(abstract)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, augment, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, augment)
-        parseTopLevelKeywordModifiers(abstract, augment)
-      parseClassOrNamedMixinApplication(abstract, null, augment, class)
-        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
+    parseTopLevelMemberImpl(;)
+      listener: beginTopLevelMember(abstract)
+      reportRecoverableErrorWithToken(abstract, Instance of 'Template<(Token) => Message>')
+        listener: handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'abstract' here., Try removing 'abstract'., {lexeme: abstract}], abstract, abstract)
+      isReservedKeyword(class)
+      indicatesMethodOrField(Class)
+      parseFields(;, null, null, null, null, null, null, null, abstract, Instance of 'NoType', augment, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
+        reportRecoverableError(augment, MissingConstFinalVarOrType)
+          listener: handleRecoverableError(MissingConstFinalVarOrType, augment, augment)
+        listener: handleNoType(abstract)
+        ensureIdentifierPotentiallyRecovered(abstract, topLevelVariableDeclaration, false)
+          listener: handleIdentifier(augment, topLevelVariableDeclaration)
+        parseFieldInitializerOpt(augment, augment, null, null, null, null, null, DeclarationKind.TopLevel, null)
+          listener: handleNoFieldInitializer(class)
+        ensureSemicolon(augment)
+          reportRecoverableError(augment, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
+            listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], augment, augment)
+          rewriter()
+        listener: endTopLevelFields(null, null, null, null, null, 1, abstract, ;)
+  listener: endTopLevelDeclaration(class)
+  parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
+    parseMetadataStar(;)
+      listener: beginMetadataStar(class)
+      listener: endMetadataStar(0)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
+      parseClassOrNamedMixinApplication(null, null, null, class)
+        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
           listener: handleIdentifier(Class, classOrMixinDeclaration)
         listener: handleNoTypeVariables(=)
-        listener: beginNamedMixinApplication(abstract, abstract, null, augment, Class)
-        parseNamedMixinApplication(Class, abstract, class)
+        listener: beginNamedMixinApplication(class, null, null, null, Class)
+        parseNamedMixinApplication(Class, class, class)
           listener: handleIdentifier(Object, typeReference)
           listener: handleNoTypeArguments(with)
           listener: handleType(Object, null)
@@ -112,7 +202,7 @@
               listener: endTypeList(1)
             listener: handleNamedMixinApplicationWithClause(with)
           ensureSemicolon(Mixin)
-          listener: endNamedMixinApplication(abstract, class, =, null, ;)
+          listener: endNamedMixinApplication(class, class, =, null, ;)
   listener: endTopLevelDeclaration()
   reportAllErrorTokens(augment)
-  listener: endCompilationUnit(4, )
+  listener: endCompilationUnit(8, )
diff --git a/pkg/front_end/parser_testcases/macros/augment_class.dart.parser.expect b/pkg/front_end/parser_testcases/macros/augment_class.dart.parser.expect
index 7808f04..f8f65a9 100644
--- a/pkg/front_end/parser_testcases/macros/augment_class.dart.parser.expect
+++ b/pkg/front_end/parser_testcases/macros/augment_class.dart.parser.expect
@@ -1,9 +1,11 @@
-augment class Class {}
-abstract augment class Class {}
-augment class Class = Object with Mixin;
-abstract augment class Class = Object with Mixin;
+NOTICE: Stream was rewritten by parser!
 
-augment[StringToken] class[KeywordToken] Class[StringToken] {[BeginToken]}[SimpleToken]
-abstract[KeywordToken] augment[StringToken] class[KeywordToken] Class[StringToken] {[BeginToken]}[SimpleToken]
-augment[StringToken] class[KeywordToken] Class[StringToken] =[SimpleToken] Object[StringToken] with[KeywordToken] Mixin[StringToken];[SimpleToken]
-abstract[KeywordToken] augment[StringToken] class[KeywordToken] Class[StringToken] =[SimpleToken] Object[StringToken] with[KeywordToken] Mixin[StringToken];[SimpleToken][SimpleToken]
+augment ;class Class {}
+abstract augment ;class Class {}
+augment ;class Class = Object with Mixin;
+abstract augment ;class Class = Object with Mixin;
+
+augment[StringToken] ;[SyntheticToken]class[KeywordToken] Class[StringToken] {[BeginToken]}[SimpleToken]
+abstract[KeywordToken] augment[StringToken] ;[SyntheticToken]class[KeywordToken] Class[StringToken] {[BeginToken]}[SimpleToken]
+augment[StringToken] ;[SyntheticToken]class[KeywordToken] Class[StringToken] =[SimpleToken] Object[StringToken] with[KeywordToken] Mixin[StringToken];[SimpleToken]
+abstract[KeywordToken] augment[StringToken] ;[SyntheticToken]class[KeywordToken] Class[StringToken] =[SimpleToken] Object[StringToken] with[KeywordToken] Mixin[StringToken];[SimpleToken][SimpleToken]
diff --git a/pkg/front_end/parser_testcases/macros/macro_class.dart.intertwined.expect b/pkg/front_end/parser_testcases/macros/macro_class.dart.intertwined.expect
index 4974091..5430ce6 100644
--- a/pkg/front_end/parser_testcases/macros/macro_class.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/macros/macro_class.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(macro)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, macro, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, macro)
+    parseTopLevelKeywordDeclaration(, class, macro, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, macro, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -34,9 +33,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(abstract)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, macro, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, macro)
-        parseTopLevelKeywordModifiers(abstract, macro)
+    parseTopLevelKeywordDeclaration(}, class, macro, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(abstract, macro, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -63,8 +60,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(macro)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, macro, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, macro)
+    parseTopLevelKeywordDeclaration(}, class, macro, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, macro, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -90,9 +86,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(abstract)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, macro, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, macro)
-        parseTopLevelKeywordModifiers(abstract, macro)
+    parseTopLevelKeywordDeclaration(;, class, macro, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(abstract, macro, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_01.dart.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_01.dart.expect
index 559ccec..d504573 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_01.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_01.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_01.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_01.dart.intertwined.expect
index d9048a1..985578d 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_01.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_01.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_02.dart.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_02.dart.expect
index eca0386..a2d09c6 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_02.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_02.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_02.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_02.dart.intertwined.expect
index ccd3a17..0e86802 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_02.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_02.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_03.dart.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_03.dart.expect
index 8464fb7..b3e65bd 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_03.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_03.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_03.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_03.dart.intertwined.expect
index c9e91b4..37721d8 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_03.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_03.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_04.dart.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_04.dart.expect
index 9255ce3..620e5ab 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_04.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_04.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_04.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_04.dart.intertwined.expect
index 7dd363a..8e4acb1 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_04.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_04.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_05.dart.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_05.dart.expect
index 1529f35..7835582 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_05.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_05.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_05.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_05.dart.intertwined.expect
index 629cc0a..d8d323d 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_05.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_05.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_06.dart.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_06.dart.expect
index 37ab35f..89c58a5 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_06.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_06.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_06.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_06.dart.intertwined.expect
index 58371cc..1b8fd87 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_06.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_06.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_07.dart.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_07.dart.expect
index bcb0253..8d817a4 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_07.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_07.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_07.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_07.dart.intertwined.expect
index 1d0e15f8..9a8e4f2 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_07.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_07.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_08.dart.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_08.dart.expect
index 1540cdb..20ea60b 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_08.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_08.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_08.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_08.dart.intertwined.expect
index 6f56fde..9fbc8ef 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_08.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_08.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_with_index_01.dart.dart.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_with_index_01.dart.dart.expect
index 12c7433..50105ca 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_with_index_01.dart.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_with_index_01.dart.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/chained_call_with_index_01.dart.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/chained_call_with_index_01.dart.dart.intertwined.expect
index 3cfb54ca..021b068 100644
--- a/pkg/front_end/parser_testcases/nnbd/chained_call_with_index_01.dart.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/chained_call_with_index_01.dart.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/error_recovery/abstract_placement.dart.expect b/pkg/front_end/parser_testcases/nnbd/error_recovery/abstract_placement.dart.expect
index ba5aea7..aaad1aa 100644
--- a/pkg/front_end/parser_testcases/nnbd/error_recovery/abstract_placement.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/error_recovery/abstract_placement.dart.expect
@@ -69,87 +69,87 @@
         endMetadataStar(0)
         handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'final'., Try re-ordering the modifiers., {string: abstract, string2: final}], abstract, abstract)
         beginMember()
-          beginFields(DeclarationKind.Class, abstract, null, null, null, null, final, {)
+          beginFields(DeclarationKind.Class, abstract, null, null, null, null, null, final, {)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(i1)
             handleType(int, null)
             handleIdentifier(i1, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(abstract, null, null, null, null, final, 1, final, ;)
+          endClassFields(abstract, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'final'., Try re-ordering the modifiers., {string: abstract, string2: final}], abstract, abstract)
         beginMember()
-          beginFields(DeclarationKind.Class, abstract, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, abstract, null, null, null, null, null, final, ;)
             handleNoType(abstract)
             handleIdentifier(i2, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(abstract, null, null, null, null, final, 1, final, ;)
+          endClassFields(abstract, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(covariant)
         endMetadataStar(0)
         handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'covariant'., Try re-ordering the modifiers., {string: abstract, string2: covariant}], abstract, abstract)
         beginMember()
-          beginFields(DeclarationKind.Class, abstract, null, null, covariant, null, null, ;)
+          beginFields(DeclarationKind.Class, abstract, null, null, null, covariant, null, null, ;)
             handleIdentifier(num, typeReference)
             handleNoTypeArguments(i3)
             handleType(num, null)
             handleIdentifier(i3, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(abstract, null, null, covariant, null, null, 1, covariant, ;)
+          endClassFields(abstract, null, null, null, covariant, null, null, 1, covariant, ;)
         endMember()
         beginMetadataStar(covariant)
         endMetadataStar(0)
         handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'covariant'., Try re-ordering the modifiers., {string: abstract, string2: covariant}], abstract, abstract)
         beginMember()
-          beginFields(DeclarationKind.Class, abstract, null, null, covariant, null, var, ;)
+          beginFields(DeclarationKind.Class, abstract, null, null, null, covariant, null, var, ;)
             handleNoType(var)
             handleIdentifier(i4, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(abstract, null, null, covariant, null, var, 1, covariant, ;)
+          endClassFields(abstract, null, null, null, covariant, null, var, 1, covariant, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'final'., Try re-ordering the modifiers., {string: abstract, string2: final}], abstract, abstract)
         beginMember()
-          beginFields(DeclarationKind.Class, abstract, null, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, abstract, null, null, null, null, null, final, ;)
             handleNoType(abstract)
             handleIdentifier(i5, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(abstract, null, null, null, null, final, 1, final, ;)
+          endClassFields(abstract, null, null, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(var)
         endMetadataStar(0)
         handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'var'., Try re-ordering the modifiers., {string: abstract, string2: var}], abstract, abstract)
         beginMember()
-          beginFields(DeclarationKind.Class, abstract, null, null, null, null, var, ;)
+          beginFields(DeclarationKind.Class, abstract, null, null, null, null, null, var, ;)
             handleNoType(abstract)
             handleIdentifier(i6, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(abstract, null, null, null, null, var, 1, var, ;)
+          endClassFields(abstract, null, null, null, null, null, var, 1, var, ;)
         endMember()
         beginMetadataStar(C)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(C, typeReference)
             handleNoTypeArguments(abstract)
             handleType(C, null)
             handleIdentifier(abstract, fieldDeclaration)
             handleNoFieldInitializer(i7)
             handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], abstract, abstract)
-          endClassFields(null, null, null, null, null, null, 1, C, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, C, ;)
         endMember()
         beginMetadataStar(i7)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleRecoverableError(MissingConstFinalVarOrType, i7, i7)
             handleNoType(;)
             handleIdentifier(i7, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 1, i7, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, i7, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 8, {, })
     endClassDeclaration(abstract, })
@@ -159,7 +159,7 @@
   beginTopLevelMember(var)
     handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'var'., Try re-ordering the modifiers., {string: abstract, string2: var}], abstract, abstract)
     handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'abstract' here., Try removing 'abstract'., {lexeme: abstract}], abstract, abstract)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, })
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, })
       handleNoType(abstract)
       handleIdentifier(foo, topLevelVariableDeclaration)
       handleNoFieldInitializer(;)
@@ -182,12 +182,12 @@
         handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'required' should be before the modifier 'covariant'., Try re-ordering the modifiers., {string: required, string2: covariant}], required, required)
         handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'required' here., Try removing 'required'., {lexeme: required}], required, required)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, covariant, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, covariant, null, null, {)
             handleRecoverableError(MissingConstFinalVarOrType, x, x)
             handleNoType(required)
             handleIdentifier(x, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, covariant, null, null, 1, covariant, ;)
+          endClassFields(null, null, null, null, covariant, null, null, 1, covariant, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
     endClassDeclaration(abstract, })
diff --git a/pkg/front_end/parser_testcases/nnbd/error_recovery/abstract_placement.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/error_recovery/abstract_placement.dart.intertwined.expect
index 2025a5f..7401376 100644
--- a/pkg/front_end/parser_testcases/nnbd/error_recovery/abstract_placement.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/error_recovery/abstract_placement.dart.intertwined.expect
@@ -6,9 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(abstract)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
-        parseTopLevelKeywordModifiers(abstract, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(abstract, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -35,16 +33,16 @@
               reportRecoverableError(abstract, Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'final'., Try re-ordering the modifiers., {string: abstract, string2: final}])
                 listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'final'., Try re-ordering the modifiers., {string: abstract, string2: final}], abstract, abstract)
               listener: beginMember()
-              parseFields({, abstract, null, null, null, null, final, abstract, Instance of 'SimpleType', i1, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, abstract, null, null, null, null, final, {)
+              parseFields({, abstract, null, null, null, null, null, final, abstract, Instance of 'SimpleType', i1, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, abstract, null, null, null, null, null, final, {)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(i1)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(i1, fieldDeclaration)
-                parseFieldInitializerOpt(i1, i1, null, abstract, null, final, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(i1, i1, null, abstract, null, null, final, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(abstract, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(abstract, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -54,14 +52,14 @@
               reportRecoverableError(abstract, Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'final'., Try re-ordering the modifiers., {string: abstract, string2: final}])
                 listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'final'., Try re-ordering the modifiers., {string: abstract, string2: final}], abstract, abstract)
               listener: beginMember()
-              parseFields(;, abstract, null, null, null, null, final, abstract, Instance of 'NoType', i2, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, abstract, null, null, null, null, final, ;)
+              parseFields(;, abstract, null, null, null, null, null, final, abstract, Instance of 'NoType', i2, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, abstract, null, null, null, null, null, final, ;)
                 listener: handleNoType(abstract)
                 ensureIdentifierPotentiallyRecovered(abstract, fieldDeclaration, false)
                   listener: handleIdentifier(i2, fieldDeclaration)
-                parseFieldInitializerOpt(i2, i2, null, abstract, null, final, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(i2, i2, null, abstract, null, null, final, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(abstract, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(abstract, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, covariant)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -71,16 +69,16 @@
               reportRecoverableError(abstract, Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'covariant'., Try re-ordering the modifiers., {string: abstract, string2: covariant}])
                 listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'covariant'., Try re-ordering the modifiers., {string: abstract, string2: covariant}], abstract, abstract)
               listener: beginMember()
-              parseFields(;, abstract, null, null, covariant, null, null, abstract, Instance of 'SimpleType', i3, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, abstract, null, null, covariant, null, null, ;)
+              parseFields(;, abstract, null, null, null, covariant, null, null, abstract, Instance of 'SimpleType', i3, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, abstract, null, null, null, covariant, null, null, ;)
                 listener: handleIdentifier(num, typeReference)
                 listener: handleNoTypeArguments(i3)
                 listener: handleType(num, null)
                 ensureIdentifierPotentiallyRecovered(num, fieldDeclaration, false)
                   listener: handleIdentifier(i3, fieldDeclaration)
-                parseFieldInitializerOpt(i3, i3, null, abstract, null, null, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(i3, i3, null, abstract, null, null, null, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(abstract, null, null, covariant, null, null, 1, covariant, ;)
+                listener: endClassFields(abstract, null, null, null, covariant, null, null, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, covariant)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -90,14 +88,14 @@
               reportRecoverableError(abstract, Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'covariant'., Try re-ordering the modifiers., {string: abstract, string2: covariant}])
                 listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'covariant'., Try re-ordering the modifiers., {string: abstract, string2: covariant}], abstract, abstract)
               listener: beginMember()
-              parseFields(;, abstract, null, null, covariant, null, var, var, Instance of 'NoType', i4, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, abstract, null, null, covariant, null, var, ;)
+              parseFields(;, abstract, null, null, null, covariant, null, var, var, Instance of 'NoType', i4, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, abstract, null, null, null, covariant, null, var, ;)
                 listener: handleNoType(var)
                 ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
                   listener: handleIdentifier(i4, fieldDeclaration)
-                parseFieldInitializerOpt(i4, i4, null, abstract, null, var, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(i4, i4, null, abstract, null, null, var, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(abstract, null, null, covariant, null, var, 1, covariant, ;)
+                listener: endClassFields(abstract, null, null, null, covariant, null, var, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -107,14 +105,14 @@
               reportRecoverableError(abstract, Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'final'., Try re-ordering the modifiers., {string: abstract, string2: final}])
                 listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'final'., Try re-ordering the modifiers., {string: abstract, string2: final}], abstract, abstract)
               listener: beginMember()
-              parseFields(;, abstract, null, null, null, null, final, abstract, Instance of 'NoType', i5, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, abstract, null, null, null, null, final, ;)
+              parseFields(;, abstract, null, null, null, null, null, final, abstract, Instance of 'NoType', i5, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, abstract, null, null, null, null, null, final, ;)
                 listener: handleNoType(abstract)
                 ensureIdentifierPotentiallyRecovered(abstract, fieldDeclaration, false)
                   listener: handleIdentifier(i5, fieldDeclaration)
-                parseFieldInitializerOpt(i5, i5, null, abstract, null, final, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(i5, i5, null, abstract, null, null, final, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(abstract, null, null, null, null, final, 1, final, ;)
+                listener: endClassFields(abstract, null, null, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, var)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -124,14 +122,14 @@
               reportRecoverableError(abstract, Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'var'., Try re-ordering the modifiers., {string: abstract, string2: var}])
                 listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'var'., Try re-ordering the modifiers., {string: abstract, string2: var}], abstract, abstract)
               listener: beginMember()
-              parseFields(;, abstract, null, null, null, null, var, abstract, Instance of 'NoType', i6, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, abstract, null, null, null, null, var, ;)
+              parseFields(;, abstract, null, null, null, null, null, var, abstract, Instance of 'NoType', i6, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, abstract, null, null, null, null, null, var, ;)
                 listener: handleNoType(abstract)
                 ensureIdentifierPotentiallyRecovered(abstract, fieldDeclaration, false)
                   listener: handleIdentifier(i6, fieldDeclaration)
-                parseFieldInitializerOpt(i6, i6, null, abstract, null, var, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(i6, i6, null, abstract, null, null, var, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(abstract, null, null, null, null, var, 1, var, ;)
+                listener: endClassFields(abstract, null, null, null, null, null, var, 1, var, ;)
               listener: endMember()
             notEofOrValue(}, C)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -139,20 +137,20 @@
                 listener: beginMetadataStar(C)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', abstract, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', abstract, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(C, typeReference)
                 listener: handleNoTypeArguments(abstract)
                 listener: handleType(C, null)
                 ensureIdentifierPotentiallyRecovered(C, fieldDeclaration, false)
                   listener: handleIdentifier(abstract, fieldDeclaration)
-                parseFieldInitializerOpt(abstract, abstract, null, null, null, null, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(abstract, abstract, null, null, null, null, null, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(i7)
                 ensureSemicolon(abstract)
                   reportRecoverableError(abstract, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
                     listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], abstract, abstract)
                   rewriter()
-                listener: endClassFields(null, null, null, null, null, null, 1, C, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, C, ;)
               listener: endMember()
             notEofOrValue(}, i7)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -161,16 +159,16 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               isReservedKeyword(;)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'NoType', i7, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'NoType', i7, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 reportRecoverableError(i7, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, i7, i7)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, fieldDeclaration, false)
                   listener: handleIdentifier(i7, fieldDeclaration)
-                parseFieldInitializerOpt(i7, i7, null, null, null, null, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(i7, i7, null, null, null, null, null, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 1, i7, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, i7, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 8, {, })
@@ -186,12 +184,12 @@
         listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'var'., Try re-ordering the modifiers., {string: abstract, string2: var}], abstract, abstract)
       reportRecoverableErrorWithToken(abstract, Instance of 'Template<(Token) => Message>')
         listener: handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'abstract' here., Try removing 'abstract'., {lexeme: abstract}], abstract, abstract)
-      parseFields(}, null, null, null, null, null, var, abstract, Instance of 'NoType', foo, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, })
+      parseFields(}, null, null, null, null, null, null, var, abstract, Instance of 'NoType', foo, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, })
         listener: handleNoType(abstract)
         ensureIdentifierPotentiallyRecovered(abstract, topLevelVariableDeclaration, false)
           listener: handleIdentifier(foo, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(foo, foo, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(foo, foo, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, null, var, 1, var, ;)
   listener: endTopLevelDeclaration(abstract)
@@ -199,9 +197,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(abstract)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
-        parseTopLevelKeywordModifiers(abstract, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(abstract, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -231,16 +227,16 @@
                 listener: handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'required' here., Try removing 'required'., {lexeme: required}], required, required)
               listener: beginMember()
               isReservedKeyword(;)
-              parseFields({, null, null, null, covariant, null, null, required, Instance of 'NoType', x, DeclarationKind.Class, Bar, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, covariant, null, null, {)
+              parseFields({, null, null, null, null, covariant, null, null, required, Instance of 'NoType', x, DeclarationKind.Class, Bar, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, covariant, null, null, {)
                 reportRecoverableError(x, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, x, x)
                 listener: handleNoType(required)
                 ensureIdentifierPotentiallyRecovered(required, fieldDeclaration, false)
                   listener: handleIdentifier(x, fieldDeclaration)
-                parseFieldInitializerOpt(x, x, null, null, null, null, DeclarationKind.Class, Bar)
+                parseFieldInitializerOpt(x, x, null, null, null, null, null, DeclarationKind.Class, Bar)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, covariant, null, null, 1, covariant, ;)
+                listener: endClassFields(null, null, null, null, covariant, null, null, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
diff --git a/pkg/front_end/parser_testcases/nnbd/error_recovery/external_placement.dart.expect b/pkg/front_end/parser_testcases/nnbd/error_recovery/external_placement.dart.expect
index 67ded7a9..dab5f4b 100644
--- a/pkg/front_end/parser_testcases/nnbd/error_recovery/external_placement.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/error_recovery/external_placement.dart.expect
@@ -41,7 +41,7 @@
   endMetadataStar(0)
   beginTopLevelMember(final)
     handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'final'., Try re-ordering the modifiers., {string: external, string2: final}], external, external)
-    beginFields(DeclarationKind.TopLevel, null, external, null, null, null, final, )
+    beginFields(DeclarationKind.TopLevel, null, null, external, null, null, null, final, )
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(i1)
       handleType(int, null)
@@ -53,7 +53,7 @@
   endMetadataStar(0)
   beginTopLevelMember(var)
     handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'var'., Try re-ordering the modifiers., {string: external, string2: var}], external, external)
-    beginFields(DeclarationKind.TopLevel, null, external, null, null, null, var, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, external, null, null, null, var, ;)
       handleNoType(external)
       handleIdentifier(i2, topLevelVariableDeclaration)
       handleNoFieldInitializer(;)
@@ -75,66 +75,66 @@
         endMetadataStar(0)
         handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'covariant'., Try re-ordering the modifiers., {string: external, string2: covariant}], external, external)
         beginMember()
-          beginFields(DeclarationKind.Class, null, external, null, covariant, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, external, null, covariant, null, null, {)
             handleIdentifier(num, typeReference)
             handleNoTypeArguments(i3)
             handleType(num, null)
             handleIdentifier(i3, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, external, null, covariant, null, null, 1, covariant, ;)
+          endClassFields(null, null, external, null, covariant, null, null, 1, covariant, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'final'., Try re-ordering the modifiers., {string: external, string2: final}], external, external)
         beginMember()
-          beginFields(DeclarationKind.Class, null, external, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, external, null, null, null, final, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(i4)
             handleType(int, null)
             handleIdentifier(i4, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, external, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, external, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'final'., Try re-ordering the modifiers., {string: external, string2: final}], external, external)
         beginMember()
-          beginFields(DeclarationKind.Class, null, external, null, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, external, null, null, null, final, ;)
             handleNoType(external)
             handleIdentifier(i5, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, external, null, null, null, final, 1, final, ;)
+          endClassFields(null, null, external, null, null, null, final, 1, final, ;)
         endMember()
         beginMetadataStar(static)
         endMetadataStar(0)
         handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'static'., Try re-ordering the modifiers., {string: external, string2: static}], external, external)
         beginMember()
-          beginFields(DeclarationKind.Class, null, external, static, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, external, static, null, null, final, ;)
             handleNoType(final)
             handleIdentifier(i6, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, external, static, null, null, final, 1, static, ;)
+          endClassFields(null, null, external, static, null, null, final, 1, static, ;)
         endMember()
         beginMetadataStar(static)
         endMetadataStar(0)
         handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'static'., Try re-ordering the modifiers., {string: external, string2: static}], external, external)
         beginMember()
-          beginFields(DeclarationKind.Class, null, external, static, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, external, static, null, null, final, ;)
             handleNoType(external)
             handleIdentifier(i7, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, external, static, null, null, final, 1, static, ;)
+          endClassFields(null, null, external, static, null, null, final, 1, static, ;)
         endMember()
         beginMetadataStar(final)
         endMetadataStar(0)
         handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'static' should be before the modifier 'final'., Try re-ordering the modifiers., {string: static, string2: final}], static, static)
         handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'static'., Try re-ordering the modifiers., {string: external, string2: static}], external, external)
         beginMember()
-          beginFields(DeclarationKind.Class, null, external, static, null, null, final, ;)
+          beginFields(DeclarationKind.Class, null, null, external, static, null, null, final, ;)
             handleNoType(external)
             handleIdentifier(i8, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, external, static, null, null, final, 1, final, ;)
+          endClassFields(null, null, external, static, null, null, final, 1, final, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 6, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/error_recovery/external_placement.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/error_recovery/external_placement.dart.intertwined.expect
index b916c91..69002dd 100644
--- a/pkg/front_end/parser_testcases/nnbd/error_recovery/external_placement.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/error_recovery/external_placement.dart.intertwined.expect
@@ -10,14 +10,14 @@
       listener: beginTopLevelMember(final)
       reportRecoverableError(external, Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'final'., Try re-ordering the modifiers., {string: external, string2: final}])
         listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'final'., Try re-ordering the modifiers., {string: external, string2: final}], external, external)
-      parseFields(, null, external, null, null, null, final, external, Instance of 'SimpleType', i1, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, external, null, null, null, final, )
+      parseFields(, null, null, external, null, null, null, final, external, Instance of 'SimpleType', i1, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, external, null, null, null, final, )
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(i1)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(i1, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(i1, i1, null, null, external, final, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(i1, i1, null, null, null, external, final, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(external, null, null, null, final, 1, final, ;)
   listener: endTopLevelDeclaration(var)
@@ -29,12 +29,12 @@
       listener: beginTopLevelMember(var)
       reportRecoverableError(external, Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'var'., Try re-ordering the modifiers., {string: external, string2: var}])
         listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'var'., Try re-ordering the modifiers., {string: external, string2: var}], external, external)
-      parseFields(;, null, external, null, null, null, var, external, Instance of 'NoType', i2, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, external, null, null, null, var, ;)
+      parseFields(;, null, null, external, null, null, null, var, external, Instance of 'NoType', i2, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, external, null, null, null, var, ;)
         listener: handleNoType(external)
         ensureIdentifierPotentiallyRecovered(external, topLevelVariableDeclaration, false)
           listener: handleIdentifier(i2, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(i2, i2, null, null, external, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(i2, i2, null, null, null, external, var, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(external, null, null, null, var, 1, var, ;)
   listener: endTopLevelDeclaration(class)
@@ -42,8 +42,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -70,16 +69,16 @@
               reportRecoverableError(external, Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'covariant'., Try re-ordering the modifiers., {string: external, string2: covariant}])
                 listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'covariant'., Try re-ordering the modifiers., {string: external, string2: covariant}], external, external)
               listener: beginMember()
-              parseFields({, null, external, null, covariant, null, null, external, Instance of 'SimpleType', i3, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, external, null, covariant, null, null, {)
+              parseFields({, null, null, external, null, covariant, null, null, external, Instance of 'SimpleType', i3, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, external, null, covariant, null, null, {)
                 listener: handleIdentifier(num, typeReference)
                 listener: handleNoTypeArguments(i3)
                 listener: handleType(num, null)
                 ensureIdentifierPotentiallyRecovered(num, fieldDeclaration, false)
                   listener: handleIdentifier(i3, fieldDeclaration)
-                parseFieldInitializerOpt(i3, i3, null, null, external, null, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(i3, i3, null, null, null, external, null, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, external, null, covariant, null, null, 1, covariant, ;)
+                listener: endClassFields(null, null, external, null, covariant, null, null, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -89,16 +88,16 @@
               reportRecoverableError(external, Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'final'., Try re-ordering the modifiers., {string: external, string2: final}])
                 listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'final'., Try re-ordering the modifiers., {string: external, string2: final}], external, external)
               listener: beginMember()
-              parseFields(;, null, external, null, null, null, final, external, Instance of 'SimpleType', i4, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, external, null, null, null, final, ;)
+              parseFields(;, null, null, external, null, null, null, final, external, Instance of 'SimpleType', i4, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, external, null, null, null, final, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(i4)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(i4, fieldDeclaration)
-                parseFieldInitializerOpt(i4, i4, null, null, external, final, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(i4, i4, null, null, null, external, final, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, external, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, external, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -108,14 +107,14 @@
               reportRecoverableError(external, Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'final'., Try re-ordering the modifiers., {string: external, string2: final}])
                 listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'final'., Try re-ordering the modifiers., {string: external, string2: final}], external, external)
               listener: beginMember()
-              parseFields(;, null, external, null, null, null, final, external, Instance of 'NoType', i5, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, external, null, null, null, final, ;)
+              parseFields(;, null, null, external, null, null, null, final, external, Instance of 'NoType', i5, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, external, null, null, null, final, ;)
                 listener: handleNoType(external)
                 ensureIdentifierPotentiallyRecovered(external, fieldDeclaration, false)
                   listener: handleIdentifier(i5, fieldDeclaration)
-                parseFieldInitializerOpt(i5, i5, null, null, external, final, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(i5, i5, null, null, null, external, final, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, external, null, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, external, null, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, static)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -125,14 +124,14 @@
               reportRecoverableError(external, Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'static'., Try re-ordering the modifiers., {string: external, string2: static}])
                 listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'static'., Try re-ordering the modifiers., {string: external, string2: static}], external, external)
               listener: beginMember()
-              parseFields(;, null, external, static, null, null, final, final, Instance of 'NoType', i6, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, external, static, null, null, final, ;)
+              parseFields(;, null, null, external, static, null, null, final, final, Instance of 'NoType', i6, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, external, static, null, null, final, ;)
                 listener: handleNoType(final)
                 ensureIdentifierPotentiallyRecovered(final, fieldDeclaration, false)
                   listener: handleIdentifier(i6, fieldDeclaration)
-                parseFieldInitializerOpt(i6, i6, null, null, external, final, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(i6, i6, null, null, null, external, final, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, external, static, null, null, final, 1, static, ;)
+                listener: endClassFields(null, null, external, static, null, null, final, 1, static, ;)
               listener: endMember()
             notEofOrValue(}, static)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -142,14 +141,14 @@
               reportRecoverableError(external, Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'static'., Try re-ordering the modifiers., {string: external, string2: static}])
                 listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'static'., Try re-ordering the modifiers., {string: external, string2: static}], external, external)
               listener: beginMember()
-              parseFields(;, null, external, static, null, null, final, external, Instance of 'NoType', i7, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, external, static, null, null, final, ;)
+              parseFields(;, null, null, external, static, null, null, final, external, Instance of 'NoType', i7, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, external, static, null, null, final, ;)
                 listener: handleNoType(external)
                 ensureIdentifierPotentiallyRecovered(external, fieldDeclaration, false)
                   listener: handleIdentifier(i7, fieldDeclaration)
-                parseFieldInitializerOpt(i7, i7, null, null, external, final, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(i7, i7, null, null, null, external, final, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, external, static, null, null, final, 1, static, ;)
+                listener: endClassFields(null, null, external, static, null, null, final, 1, static, ;)
               listener: endMember()
             notEofOrValue(}, final)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -161,14 +160,14 @@
               reportRecoverableError(external, Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'static'., Try re-ordering the modifiers., {string: external, string2: static}])
                 listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'external' should be before the modifier 'static'., Try re-ordering the modifiers., {string: external, string2: static}], external, external)
               listener: beginMember()
-              parseFields(;, null, external, static, null, null, final, external, Instance of 'NoType', i8, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, external, static, null, null, final, ;)
+              parseFields(;, null, null, external, static, null, null, final, external, Instance of 'NoType', i8, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, external, static, null, null, final, ;)
                 listener: handleNoType(external)
                 ensureIdentifierPotentiallyRecovered(external, fieldDeclaration, false)
                   listener: handleIdentifier(i8, fieldDeclaration)
-                parseFieldInitializerOpt(i8, i8, null, null, external, final, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(i8, i8, null, null, null, external, final, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, external, static, null, null, final, 1, final, ;)
+                listener: endClassFields(null, null, external, static, null, null, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 6, {, })
diff --git a/pkg/front_end/parser_testcases/nnbd/error_recovery/late_without_var_etc.dart.expect b/pkg/front_end/parser_testcases/nnbd/error_recovery/late_without_var_etc.dart.expect
index 7652df3..f6ebe0e 100644
--- a/pkg/front_end/parser_testcases/nnbd/error_recovery/late_without_var_etc.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/error_recovery/late_without_var_etc.dart.expect
@@ -24,7 +24,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -48,7 +48,7 @@
   beginMetadataStar(late)
   endMetadataStar(0)
   beginTopLevelMember(late)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, late, null, })
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, late, null, })
       handleRecoverableError(MissingConstFinalVarOrType, y, y)
       handleNoType(late)
       handleIdentifier(y, topLevelVariableDeclaration)
@@ -70,12 +70,12 @@
         beginMetadataStar(late)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, late, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, late, null, {)
             handleRecoverableError(MissingConstFinalVarOrType, z, z)
             handleNoType(late)
             handleIdentifier(z, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, late, null, 1, late, ;)
+          endClassFields(null, null, null, null, null, late, null, 1, late, ;)
         endMember()
         beginMetadataStar(void)
         endMetadataStar(0)
diff --git a/pkg/front_end/parser_testcases/nnbd/error_recovery/late_without_var_etc.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/error_recovery/late_without_var_etc.dart.intertwined.expect
index 0a7ae0a..8cea79d 100644
--- a/pkg/front_end/parser_testcases/nnbd/error_recovery/late_without_var_etc.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/error_recovery/late_without_var_etc.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
@@ -58,14 +58,14 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(late)
       isReservedKeyword(;)
-      parseFields(}, null, null, null, null, late, null, late, Instance of 'NoType', y, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, late, null, })
+      parseFields(}, null, null, null, null, null, late, null, late, Instance of 'NoType', y, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, late, null, })
         reportRecoverableError(y, MissingConstFinalVarOrType)
           listener: handleRecoverableError(MissingConstFinalVarOrType, y, y)
         listener: handleNoType(late)
         ensureIdentifierPotentiallyRecovered(late, topLevelVariableDeclaration, false)
           listener: handleIdentifier(y, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(y, y, late, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(y, y, late, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, late, null, 1, late, ;)
   listener: endTopLevelDeclaration(class)
@@ -73,8 +73,7 @@
     parseMetadataStar(;)
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(;, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(;, class)
+    parseTopLevelKeywordDeclaration(;, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -100,16 +99,16 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               isReservedKeyword(;)
-              parseFields({, null, null, null, null, late, null, late, Instance of 'NoType', z, DeclarationKind.Class, Foo, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, late, null, {)
+              parseFields({, null, null, null, null, null, late, null, late, Instance of 'NoType', z, DeclarationKind.Class, Foo, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, late, null, {)
                 reportRecoverableError(z, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, z, z)
                 listener: handleNoType(late)
                 ensureIdentifierPotentiallyRecovered(late, fieldDeclaration, false)
                   listener: handleIdentifier(z, fieldDeclaration)
-                parseFieldInitializerOpt(z, z, late, null, null, null, DeclarationKind.Class, Foo)
+                parseFieldInitializerOpt(z, z, late, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, late, null, 1, late, ;)
+                listener: endClassFields(null, null, null, null, null, late, null, 1, late, ;)
               listener: endMember()
             notEofOrValue(}, void)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39286.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39286.dart.expect
index 9eb39b0..fe8f216 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39286.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39286.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39286.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39286.dart.intertwined.expect
index f7c4821..0109ec5 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39286.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39286.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39286_2.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39286_2.dart.expect
index f839c84..024e3ff 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39286_2.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39286_2.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39286_2.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39286_2.dart.intertwined.expect
index 08c5d05..c9caa2d 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39286_2.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39286_2.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39286_2_prime.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39286_2_prime.dart.expect
index 8a970e4..93f0fc4 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39286_2_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39286_2_prime.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39286_2_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39286_2_prime.dart.intertwined.expect
index 28c57f8..0609ba0 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39286_2_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39286_2_prime.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39286_prime.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39286_prime.dart.expect
index ed21533..7bf5d36 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39286_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39286_prime.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(test, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39286_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39286_prime.dart.intertwined.expect
index 67b9a92..536cdc4 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39286_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39286_prime.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, test, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, test, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(test, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39326.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39326.dart.expect
index 0b8bec0..f0d583e 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39326.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39326.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39326.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39326.dart.intertwined.expect
index 9b90848..fa230b5 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39326.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39326.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39697.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39697.dart.expect
index 8254bd8..c8ea584 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39697.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39697.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(Logger)
   endMetadataStar(0)
   beginTopLevelMember(Logger)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleIdentifier(Logger, typeReference)
       handleNoTypeArguments(get)
       handleType(Logger, null)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39697.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39697.dart.intertwined.expect
index 01fa912..d451892 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39697.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39697.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(Logger)
-      parseTopLevelMethod(, null, , Instance of 'SimpleType', get, log, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'SimpleType', get, log, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleIdentifier(Logger, typeReference)
         listener: handleNoTypeArguments(get)
         listener: handleType(Logger, null)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39697_prime.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39697_prime.dart.expect
index 683bb10..6185fd0 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39697_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39697_prime.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(Logger)
   endMetadataStar(0)
   beginTopLevelMember(Logger)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleIdentifier(Logger, typeReference)
       handleNoTypeArguments(get)
       handleType(Logger, null)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39697_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39697_prime.dart.intertwined.expect
index fc65700..e244fe9 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39697_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39697_prime.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(Logger)
-      parseTopLevelMethod(, null, , Instance of 'SimpleType', get, log, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'SimpleType', get, log, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleIdentifier(Logger, typeReference)
         listener: handleNoTypeArguments(get)
         listener: handleType(Logger, null)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39723.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39723.dart.expect
index 0a76358..166b630 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39723.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39723.dart.expect
@@ -44,7 +44,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39723.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39723.dart.intertwined.expect
index 5305604..ba9575a 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39723.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39723.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -93,8 +92,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39723_prime.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39723_prime.dart.expect
index 9827a7a..a62e03a 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39723_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39723_prime.dart.expect
@@ -44,7 +44,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39723_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39723_prime.dart.intertwined.expect
index 6aa9c44..cf302a7 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39723_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39723_prime.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -93,8 +92,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39776.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39776.dart.expect
index 24db2d4..46fbaed 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39776.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39776.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(Object)
   endMetadataStar(0)
   beginTopLevelMember(Object)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleIdentifier(Object, typeReference)
       handleNoTypeArguments(?)
       handleType(Object, ?)
@@ -28,7 +28,7 @@
   beginMetadataStar(Object)
   endMetadataStar(0)
   beginTopLevelMember(Object)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleIdentifier(Object, typeReference)
       handleNoTypeArguments(?)
       handleType(Object, ?)
@@ -61,7 +61,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleNoType(;)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39776.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39776.dart.intertwined.expect
index 58c95fc..e532ab1 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39776.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39776.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(Object)
-      parseTopLevelMethod(, null, , Instance of 'SimpleNullableType', null, foo, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'SimpleNullableType', null, foo, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleIdentifier(Object, typeReference)
         listener: handleNoTypeArguments(?)
         listener: handleType(Object, ?)
@@ -58,8 +58,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(Object)
-      parseTopLevelMethod(;, null, ;, Instance of 'SimpleNullableType', null, bar, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'SimpleNullableType', null, bar, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleIdentifier(Object, typeReference)
         listener: handleNoTypeArguments(?)
         listener: handleType(Object, ?)
@@ -115,8 +115,8 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleNoType(;)
         ensureIdentifierPotentiallyRecovered(;, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime1.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime1.dart.expect
index 2e03885..9bd99df 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime1.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime1.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(Object)
   endMetadataStar(0)
   beginTopLevelMember(Object)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleIdentifier(Object, typeReference)
       handleNoTypeArguments(?)
       handleType(Object, ?)
@@ -28,7 +28,7 @@
   beginMetadataStar(Object)
   endMetadataStar(0)
   beginTopLevelMember(Object)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleIdentifier(Object, typeReference)
       handleNoTypeArguments(?)
       handleType(Object, ?)
@@ -61,7 +61,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleNoType(;)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime1.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime1.dart.intertwined.expect
index 50ee388..3cd3ac7 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime1.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime1.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(Object)
-      parseTopLevelMethod(, null, , Instance of 'SimpleNullableType', null, foo, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'SimpleNullableType', null, foo, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleIdentifier(Object, typeReference)
         listener: handleNoTypeArguments(?)
         listener: handleType(Object, ?)
@@ -58,8 +58,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(Object)
-      parseTopLevelMethod(;, null, ;, Instance of 'SimpleNullableType', null, bar, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'SimpleNullableType', null, bar, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleIdentifier(Object, typeReference)
         listener: handleNoTypeArguments(?)
         listener: handleType(Object, ?)
@@ -115,8 +115,8 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleNoType(;)
         ensureIdentifierPotentiallyRecovered(;, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime2.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime2.dart.expect
index 784d7f5..a0cc20d 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime2.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime2.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(Object)
   endMetadataStar(0)
   beginTopLevelMember(Object)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleIdentifier(Object, typeReference)
       handleNoTypeArguments(?)
       handleType(Object, ?)
@@ -28,7 +28,7 @@
   beginMetadataStar(Object)
   endMetadataStar(0)
   beginTopLevelMember(Object)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleIdentifier(Object, typeReference)
       handleNoTypeArguments(?)
       handleType(Object, ?)
@@ -61,7 +61,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleNoType(;)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime2.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime2.dart.intertwined.expect
index 1ce0ec5..abe2650 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime2.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime2.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(Object)
-      parseTopLevelMethod(, null, , Instance of 'SimpleNullableType', null, foo, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'SimpleNullableType', null, foo, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleIdentifier(Object, typeReference)
         listener: handleNoTypeArguments(?)
         listener: handleType(Object, ?)
@@ -58,8 +58,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(Object)
-      parseTopLevelMethod(;, null, ;, Instance of 'SimpleNullableType', null, bar, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'SimpleNullableType', null, bar, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleIdentifier(Object, typeReference)
         listener: handleNoTypeArguments(?)
         listener: handleType(Object, ?)
@@ -115,8 +115,8 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleNoType(;)
         ensureIdentifierPotentiallyRecovered(;, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime3.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime3.dart.expect
index 8045c84..c5bf508 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime3.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime3.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(Object)
   endMetadataStar(0)
   beginTopLevelMember(Object)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleIdentifier(Object, typeReference)
       handleNoTypeArguments(bar)
       handleType(Object, null)
@@ -50,7 +50,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleNoType(;)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime3.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime3.dart.intertwined.expect
index 7d4f5c2..c56b490 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime3.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime3.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(Object)
-      parseTopLevelMethod(, null, , Instance of 'SimpleType', null, bar, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'SimpleType', null, bar, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleIdentifier(Object, typeReference)
         listener: handleNoTypeArguments(bar)
         listener: handleType(Object, null)
@@ -87,8 +87,8 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleNoType(;)
         ensureIdentifierPotentiallyRecovered(;, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime4.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime4.dart.expect
index deeede9..e2bd69d 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime4.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime4.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(Object)
   endMetadataStar(0)
   beginTopLevelMember(Object)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleIdentifier(Object, typeReference)
       handleNoTypeArguments(bar)
       handleType(Object, null)
@@ -50,7 +50,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleNoType(;)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime4.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime4.dart.intertwined.expect
index 8db1a2c..fde2d69 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime4.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime4.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(Object)
-      parseTopLevelMethod(, null, , Instance of 'SimpleType', null, bar, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'SimpleType', null, bar, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleIdentifier(Object, typeReference)
         listener: handleNoTypeArguments(bar)
         listener: handleType(Object, null)
@@ -87,8 +87,8 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleNoType(;)
         ensureIdentifierPotentiallyRecovered(;, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime5.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime5.dart.expect
index f733ac0..8928d97 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime5.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime5.dart.expect
@@ -12,7 +12,7 @@
   beginMetadataStar(foo)
   endMetadataStar(0)
   beginTopLevelMember(foo)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(foo, topLevelFunctionDeclaration)
       handleRecoverableError(Message[UnexpectedToken, Unexpected token '!'., null, {lexeme: !}], !, !)
@@ -27,7 +27,7 @@
   beginMetadataStar(bar)
   endMetadataStar(0)
   beginTopLevelMember(bar)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleNoType(;)
       handleIdentifier(bar, topLevelFunctionDeclaration)
       handleRecoverableError(Message[UnexpectedToken, Unexpected token '!'., null, {lexeme: !}], !, !)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime5.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime5.dart.intertwined.expect
index 468cde8..242f5b2 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime5.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime5.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(foo)
       isReservedKeyword(!)
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, foo, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, foo, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(foo, topLevelFunctionDeclaration)
@@ -46,8 +46,8 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(bar)
       isReservedKeyword(!)
-      parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, bar, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'NoType', null, bar, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleNoType(;)
         ensureIdentifierPotentiallyRecovered(;, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(bar, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime6.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime6.dart.expect
index f0bd214..0bea5f7 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime6.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime6.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(foo)
   endMetadataStar(0)
   beginTopLevelMember(foo)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(foo, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -16,7 +16,7 @@
   beginMetadataStar(bar)
   endMetadataStar(0)
   beginTopLevelMember(bar)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleNoType(;)
       handleIdentifier(bar, topLevelFunctionDeclaration)
       beginTypeVariables(<)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime6.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime6.dart.intertwined.expect
index 8ff499f..4dfc115 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime6.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime6.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(foo)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, foo, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, foo, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(foo, topLevelFunctionDeclaration)
@@ -44,8 +44,8 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(bar)
       isReservedKeyword(<)
-      parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, bar, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'NoType', null, bar, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleNoType(;)
         ensureIdentifierPotentiallyRecovered(;, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(bar, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39858.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39858.dart.expect
index af79d78..880bee0 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39858.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39858.dart.expect
@@ -40,68 +40,68 @@
         beginMetadataStar(late)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, late, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, late, null, {)
             handleRecoverableError(MissingConstFinalVarOrType, x1, x1)
             handleNoType(late)
             handleIdentifier(x1, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, late, null, 1, late, ;)
+          endClassFields(null, null, null, null, null, late, null, 1, late, ;)
         endMember()
         beginMetadataStar(static)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, static, null, late, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, static, null, late, null, ;)
             handleRecoverableError(MissingConstFinalVarOrType, x2, x2)
             handleNoType(late)
             handleIdentifier(x2, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, static, null, late, null, 1, static, ;)
+          endClassFields(null, null, null, static, null, late, null, 1, static, ;)
         endMember()
         beginMetadataStar(covariant)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, covariant, late, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, covariant, late, null, ;)
             handleRecoverableError(MissingConstFinalVarOrType, x3, x3)
             handleNoType(late)
             handleIdentifier(x3, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, covariant, late, null, 1, covariant, ;)
+          endClassFields(null, null, null, null, covariant, late, null, 1, covariant, ;)
         endMember()
         beginMetadataStar(late)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, late, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, late, null, ;)
             handleRecoverableError(MissingConstFinalVarOrType, x4, x4)
             handleNoType(late)
             handleIdentifier(x4, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(0)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, late, null, 1, late, ;)
+          endClassFields(null, null, null, null, null, late, null, 1, late, ;)
         endMember()
         beginMetadataStar(static)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, static, null, late, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, static, null, late, null, ;)
             handleRecoverableError(MissingConstFinalVarOrType, x5, x5)
             handleNoType(late)
             handleIdentifier(x5, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(0)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, static, null, late, null, 1, static, ;)
+          endClassFields(null, null, null, static, null, late, null, 1, static, ;)
         endMember()
         beginMetadataStar(covariant)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, covariant, late, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, covariant, late, null, ;)
             handleRecoverableError(MissingConstFinalVarOrType, x6, x6)
             handleNoType(late)
             handleIdentifier(x6, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(0)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, covariant, late, null, 1, covariant, ;)
+          endClassFields(null, null, null, null, covariant, late, null, 1, covariant, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 6, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39858.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39858.dart.intertwined.expect
index 6e787be..93daa85 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39858.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39858.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -33,16 +32,16 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               isReservedKeyword(;)
-              parseFields({, null, null, null, null, late, null, late, Instance of 'NoType', x1, DeclarationKind.Class, X, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, late, null, {)
+              parseFields({, null, null, null, null, null, late, null, late, Instance of 'NoType', x1, DeclarationKind.Class, X, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, late, null, {)
                 reportRecoverableError(x1, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, x1, x1)
                 listener: handleNoType(late)
                 ensureIdentifierPotentiallyRecovered(late, fieldDeclaration, false)
                   listener: handleIdentifier(x1, fieldDeclaration)
-                parseFieldInitializerOpt(x1, x1, late, null, null, null, DeclarationKind.Class, X)
+                parseFieldInitializerOpt(x1, x1, late, null, null, null, null, DeclarationKind.Class, X)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, late, null, 1, late, ;)
+                listener: endClassFields(null, null, null, null, null, late, null, 1, late, ;)
               listener: endMember()
             notEofOrValue(}, static)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, X)
@@ -51,16 +50,16 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               isReservedKeyword(;)
-              parseFields(;, null, null, static, null, late, null, late, Instance of 'NoType', x2, DeclarationKind.Class, X, false)
-                listener: beginFields(DeclarationKind.Class, null, null, static, null, late, null, ;)
+              parseFields(;, null, null, null, static, null, late, null, late, Instance of 'NoType', x2, DeclarationKind.Class, X, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, static, null, late, null, ;)
                 reportRecoverableError(x2, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, x2, x2)
                 listener: handleNoType(late)
                 ensureIdentifierPotentiallyRecovered(late, fieldDeclaration, false)
                   listener: handleIdentifier(x2, fieldDeclaration)
-                parseFieldInitializerOpt(x2, x2, late, null, null, null, DeclarationKind.Class, X)
+                parseFieldInitializerOpt(x2, x2, late, null, null, null, null, DeclarationKind.Class, X)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, static, null, late, null, 1, static, ;)
+                listener: endClassFields(null, null, null, static, null, late, null, 1, static, ;)
               listener: endMember()
             notEofOrValue(}, covariant)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, X)
@@ -69,16 +68,16 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               isReservedKeyword(;)
-              parseFields(;, null, null, null, covariant, late, null, late, Instance of 'NoType', x3, DeclarationKind.Class, X, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, covariant, late, null, ;)
+              parseFields(;, null, null, null, null, covariant, late, null, late, Instance of 'NoType', x3, DeclarationKind.Class, X, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, covariant, late, null, ;)
                 reportRecoverableError(x3, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, x3, x3)
                 listener: handleNoType(late)
                 ensureIdentifierPotentiallyRecovered(late, fieldDeclaration, false)
                   listener: handleIdentifier(x3, fieldDeclaration)
-                parseFieldInitializerOpt(x3, x3, late, null, null, null, DeclarationKind.Class, X)
+                parseFieldInitializerOpt(x3, x3, late, null, null, null, null, DeclarationKind.Class, X)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, covariant, late, null, 1, covariant, ;)
+                listener: endClassFields(null, null, null, null, covariant, late, null, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, late)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, X)
@@ -87,14 +86,14 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               isReservedKeyword(=)
-              parseFields(;, null, null, null, null, late, null, late, Instance of 'NoType', x4, DeclarationKind.Class, X, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, late, null, ;)
+              parseFields(;, null, null, null, null, null, late, null, late, Instance of 'NoType', x4, DeclarationKind.Class, X, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, late, null, ;)
                 reportRecoverableError(x4, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, x4, x4)
                 listener: handleNoType(late)
                 ensureIdentifierPotentiallyRecovered(late, fieldDeclaration, false)
                   listener: handleIdentifier(x4, fieldDeclaration)
-                parseFieldInitializerOpt(x4, x4, late, null, null, null, DeclarationKind.Class, X)
+                parseFieldInitializerOpt(x4, x4, late, null, null, null, null, DeclarationKind.Class, X)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -103,7 +102,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(0)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, late, null, 1, late, ;)
+                listener: endClassFields(null, null, null, null, null, late, null, 1, late, ;)
               listener: endMember()
             notEofOrValue(}, static)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, X)
@@ -112,14 +111,14 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               isReservedKeyword(=)
-              parseFields(;, null, null, static, null, late, null, late, Instance of 'NoType', x5, DeclarationKind.Class, X, false)
-                listener: beginFields(DeclarationKind.Class, null, null, static, null, late, null, ;)
+              parseFields(;, null, null, null, static, null, late, null, late, Instance of 'NoType', x5, DeclarationKind.Class, X, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, static, null, late, null, ;)
                 reportRecoverableError(x5, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, x5, x5)
                 listener: handleNoType(late)
                 ensureIdentifierPotentiallyRecovered(late, fieldDeclaration, false)
                   listener: handleIdentifier(x5, fieldDeclaration)
-                parseFieldInitializerOpt(x5, x5, late, null, null, null, DeclarationKind.Class, X)
+                parseFieldInitializerOpt(x5, x5, late, null, null, null, null, DeclarationKind.Class, X)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -128,7 +127,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(0)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, static, null, late, null, 1, static, ;)
+                listener: endClassFields(null, null, null, static, null, late, null, 1, static, ;)
               listener: endMember()
             notEofOrValue(}, covariant)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, X)
@@ -137,14 +136,14 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               isReservedKeyword(=)
-              parseFields(;, null, null, null, covariant, late, null, late, Instance of 'NoType', x6, DeclarationKind.Class, X, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, covariant, late, null, ;)
+              parseFields(;, null, null, null, null, covariant, late, null, late, Instance of 'NoType', x6, DeclarationKind.Class, X, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, covariant, late, null, ;)
                 reportRecoverableError(x6, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, x6, x6)
                 listener: handleNoType(late)
                 ensureIdentifierPotentiallyRecovered(late, fieldDeclaration, false)
                   listener: handleIdentifier(x6, fieldDeclaration)
-                parseFieldInitializerOpt(x6, x6, late, null, null, null, DeclarationKind.Class, X)
+                parseFieldInitializerOpt(x6, x6, late, null, null, null, null, DeclarationKind.Class, X)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -153,7 +152,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(0)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, covariant, late, null, 1, covariant, ;)
+                listener: endClassFields(null, null, null, null, covariant, late, null, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 6, {, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39858_prime1.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39858_prime1.dart.expect
index 281368d..3b6c7ed 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39858_prime1.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39858_prime1.dart.expect
@@ -14,62 +14,62 @@
         beginMetadataStar(var)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, var, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, var, {)
             handleNoType(var)
             handleIdentifier(x1, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, var, 1, var, ;)
+          endClassFields(null, null, null, null, null, null, var, 1, var, ;)
         endMember()
         beginMetadataStar(static)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, static, null, null, var, ;)
+          beginFields(DeclarationKind.Class, null, null, null, static, null, null, var, ;)
             handleNoType(var)
             handleIdentifier(x2, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, static, null, null, var, 1, static, ;)
+          endClassFields(null, null, null, static, null, null, var, 1, static, ;)
         endMember()
         beginMetadataStar(covariant)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, covariant, null, var, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, covariant, null, var, ;)
             handleNoType(var)
             handleIdentifier(x3, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, covariant, null, var, 1, covariant, ;)
+          endClassFields(null, null, null, null, covariant, null, var, 1, covariant, ;)
         endMember()
         beginMetadataStar(var)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, var, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, var, ;)
             handleNoType(var)
             handleIdentifier(x4, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(0)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, var, 1, var, ;)
+          endClassFields(null, null, null, null, null, null, var, 1, var, ;)
         endMember()
         beginMetadataStar(static)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, static, null, null, var, ;)
+          beginFields(DeclarationKind.Class, null, null, null, static, null, null, var, ;)
             handleNoType(var)
             handleIdentifier(x5, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(0)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, static, null, null, var, 1, static, ;)
+          endClassFields(null, null, null, static, null, null, var, 1, static, ;)
         endMember()
         beginMetadataStar(covariant)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, covariant, null, var, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, covariant, null, var, ;)
             handleNoType(var)
             handleIdentifier(x6, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(0)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, covariant, null, var, 1, covariant, ;)
+          endClassFields(null, null, null, null, covariant, null, var, 1, covariant, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 6, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39858_prime1.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39858_prime1.dart.intertwined.expect
index cfe6892..3a718ae 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39858_prime1.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39858_prime1.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,14 +31,14 @@
                 listener: beginMetadataStar(var)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, var, var, Instance of 'NoType', x1, DeclarationKind.Class, X, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, var, {)
+              parseFields({, null, null, null, null, null, null, var, var, Instance of 'NoType', x1, DeclarationKind.Class, X, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, var, {)
                 listener: handleNoType(var)
                 ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
                   listener: handleIdentifier(x1, fieldDeclaration)
-                parseFieldInitializerOpt(x1, x1, null, null, null, var, DeclarationKind.Class, X)
+                parseFieldInitializerOpt(x1, x1, null, null, null, null, var, DeclarationKind.Class, X)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, var, 1, var, ;)
+                listener: endClassFields(null, null, null, null, null, null, var, 1, var, ;)
               listener: endMember()
             notEofOrValue(}, static)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, X)
@@ -47,14 +46,14 @@
                 listener: beginMetadataStar(static)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, static, null, null, var, var, Instance of 'NoType', x2, DeclarationKind.Class, X, false)
-                listener: beginFields(DeclarationKind.Class, null, null, static, null, null, var, ;)
+              parseFields(;, null, null, null, static, null, null, var, var, Instance of 'NoType', x2, DeclarationKind.Class, X, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, static, null, null, var, ;)
                 listener: handleNoType(var)
                 ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
                   listener: handleIdentifier(x2, fieldDeclaration)
-                parseFieldInitializerOpt(x2, x2, null, null, null, var, DeclarationKind.Class, X)
+                parseFieldInitializerOpt(x2, x2, null, null, null, null, var, DeclarationKind.Class, X)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, static, null, null, var, 1, static, ;)
+                listener: endClassFields(null, null, null, static, null, null, var, 1, static, ;)
               listener: endMember()
             notEofOrValue(}, covariant)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, X)
@@ -62,14 +61,14 @@
                 listener: beginMetadataStar(covariant)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, covariant, null, var, var, Instance of 'NoType', x3, DeclarationKind.Class, X, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, covariant, null, var, ;)
+              parseFields(;, null, null, null, null, covariant, null, var, var, Instance of 'NoType', x3, DeclarationKind.Class, X, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, covariant, null, var, ;)
                 listener: handleNoType(var)
                 ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
                   listener: handleIdentifier(x3, fieldDeclaration)
-                parseFieldInitializerOpt(x3, x3, null, null, null, var, DeclarationKind.Class, X)
+                parseFieldInitializerOpt(x3, x3, null, null, null, null, var, DeclarationKind.Class, X)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, covariant, null, var, 1, covariant, ;)
+                listener: endClassFields(null, null, null, null, covariant, null, var, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, var)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, X)
@@ -77,12 +76,12 @@
                 listener: beginMetadataStar(var)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, var, var, Instance of 'NoType', x4, DeclarationKind.Class, X, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, var, ;)
+              parseFields(;, null, null, null, null, null, null, var, var, Instance of 'NoType', x4, DeclarationKind.Class, X, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, var, ;)
                 listener: handleNoType(var)
                 ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
                   listener: handleIdentifier(x4, fieldDeclaration)
-                parseFieldInitializerOpt(x4, x4, null, null, null, var, DeclarationKind.Class, X)
+                parseFieldInitializerOpt(x4, x4, null, null, null, null, var, DeclarationKind.Class, X)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -91,7 +90,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(0)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, var, 1, var, ;)
+                listener: endClassFields(null, null, null, null, null, null, var, 1, var, ;)
               listener: endMember()
             notEofOrValue(}, static)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, X)
@@ -99,12 +98,12 @@
                 listener: beginMetadataStar(static)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, static, null, null, var, var, Instance of 'NoType', x5, DeclarationKind.Class, X, false)
-                listener: beginFields(DeclarationKind.Class, null, null, static, null, null, var, ;)
+              parseFields(;, null, null, null, static, null, null, var, var, Instance of 'NoType', x5, DeclarationKind.Class, X, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, static, null, null, var, ;)
                 listener: handleNoType(var)
                 ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
                   listener: handleIdentifier(x5, fieldDeclaration)
-                parseFieldInitializerOpt(x5, x5, null, null, null, var, DeclarationKind.Class, X)
+                parseFieldInitializerOpt(x5, x5, null, null, null, null, var, DeclarationKind.Class, X)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -113,7 +112,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(0)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, static, null, null, var, 1, static, ;)
+                listener: endClassFields(null, null, null, static, null, null, var, 1, static, ;)
               listener: endMember()
             notEofOrValue(}, covariant)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, X)
@@ -121,12 +120,12 @@
                 listener: beginMetadataStar(covariant)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, covariant, null, var, var, Instance of 'NoType', x6, DeclarationKind.Class, X, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, covariant, null, var, ;)
+              parseFields(;, null, null, null, null, covariant, null, var, var, Instance of 'NoType', x6, DeclarationKind.Class, X, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, covariant, null, var, ;)
                 listener: handleNoType(var)
                 ensureIdentifierPotentiallyRecovered(var, fieldDeclaration, false)
                   listener: handleIdentifier(x6, fieldDeclaration)
-                parseFieldInitializerOpt(x6, x6, null, null, null, var, DeclarationKind.Class, X)
+                parseFieldInitializerOpt(x6, x6, null, null, null, null, var, DeclarationKind.Class, X)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -135,7 +134,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(0)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, covariant, null, var, 1, covariant, ;)
+                listener: endClassFields(null, null, null, null, covariant, null, var, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 6, {, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_01.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_01.dart.expect
index 2237904..7217bcd 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_01.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_01.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_01.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_01.dart.intertwined.expect
index 7be843b..936ebb0 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_01.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_01.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_02.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_02.dart.expect
index 2661638..ab38809 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_02.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_02.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_02.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_02.dart.intertwined.expect
index 4d90b4e..4a45768 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_02.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_02.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_03.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_03.dart.expect
index 8fdf15f..fc31623 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_03.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_03.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_03.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_03.dart.intertwined.expect
index bda756d..85cbf83 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_03.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_03.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_04.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_04.dart.expect
index 005915d..07986d7 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_04.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_04.dart.expect
@@ -8,7 +8,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_04.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_04.dart.intertwined.expect
index 9e17362..178480e 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_04.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_04.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_05.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_05.dart.expect
index f9990c4..a14690f 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_05.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_05.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_05.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_05.dart.intertwined.expect
index d9a4309..fc65ecc 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_case_05.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_case_05.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_conditional.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_conditional.dart.expect
index 537e3e4..ba8a1cc 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_conditional.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_conditional.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_conditional.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_conditional.dart.intertwined.expect
index cd8f064..ea5feb9 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_conditional.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_conditional.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_conditional_2.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_conditional_2.dart.expect
index 947256d..3c88f4e 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_conditional_2.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_conditional_2.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_conditional_2.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_conditional_2.dart.intertwined.expect
index 6c1ac05..42f9b1c 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_conditional_2.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_conditional_2.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_index_access.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_index_access.dart.expect
index abcfbe6..aa1df2a 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_index_access.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_index_access.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_index_access.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_index_access.dart.intertwined.expect
index faba2d8..f9de6bf 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_index_access.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_index_access.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_index_set.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_index_set.dart.expect
index c8c2deb..8415b5f 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_index_set.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_index_set.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_index_set.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_index_set.dart.intertwined.expect
index 81546e3..4bd6584 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_index_set.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_index_set.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_lookup_plus.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_lookup_plus.dart.expect
index 6ab48a8..9dcfc3f 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_lookup_plus.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_lookup_plus.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_lookup_plus.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_lookup_plus.dart.intertwined.expect
index b381072..2f84138 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_lookup_plus.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_lookup_plus.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_lookup_plus_plus.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_lookup_plus_plus.dart.expect
index a0af8fd..a4df5d6 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_lookup_plus_plus.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_lookup_plus_plus.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_lookup_plus_plus.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_lookup_plus_plus.dart.intertwined.expect
index 79d8e62..872d2a6 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_lookup_plus_plus.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_lookup_plus_plus.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_no_type_arguments.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_no_type_arguments.dart.expect
index d0ea866..9fe3525 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_no_type_arguments.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_no_type_arguments.dart.expect
@@ -12,7 +12,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_no_type_arguments.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_no_type_arguments.dart.intertwined.expect
index 3c3dc60..243dd75 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_no_type_arguments.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_no_type_arguments.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_with_type_arguments.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_with_type_arguments.dart.expect
index 5bf1444..a3bcbdb 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_with_type_arguments.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_with_type_arguments.dart.expect
@@ -24,7 +24,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_with_type_arguments.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_with_type_arguments.dart.intertwined.expect
index bd14c6d..dab8c9f 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_with_type_arguments.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_with_type_arguments.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_plus_plus_lookup.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_plus_plus_lookup.dart.expect
index c200dba..5c7e077 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_plus_plus_lookup.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_plus_plus_lookup.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_plus_plus_lookup.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_plus_plus_lookup.dart.intertwined.expect
index abbe1a2..c14c7a9 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_plus_plus_lookup.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_plus_plus_lookup.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40793.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40793.dart.expect
index 68029a8..f7f74f3 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40793.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40793.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40793.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40793.dart.intertwined.expect
index b152414..4ff2191 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40793.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40793.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime.dart.expect
index 1e4e813..330ec02 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime.dart.intertwined.expect
index aa7d301..1da22990 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime2.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime2.dart.expect
index 39bbef9..8c44af9 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime2.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime2.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime2.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime2.dart.intertwined.expect
index fe14ada..9fa6435 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime2.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime2.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime3.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime3.dart.expect
index 10abc1f..c790069 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime3.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime3.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime3.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime3.dart.intertwined.expect
index 49c026b..7a10fec 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime3.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime3.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime4.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime4.dart.expect
index 40fbd06..1a04353 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime4.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime4.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime4.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime4.dart.intertwined.expect
index e9f2347..944e564 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime4.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime4.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime5.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime5.dart.expect
index 1a737fe..fa573f88 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime5.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime5.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime5.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime5.dart.intertwined.expect
index 0ba3f9c..ae28fcf 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40793_prime5.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40793_prime5.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40805_01.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40805_01.dart.expect
index 6a6108b..db5428e 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40805_01.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40805_01.dart.expect
@@ -14,13 +14,13 @@
         beginMetadataStar(covariant)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, covariant, late, final, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, covariant, late, final, {)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(x)
             handleType(int, null)
             handleIdentifier(x, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, covariant, late, final, 1, covariant, ;)
+          endClassFields(null, null, null, null, covariant, late, final, 1, covariant, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40805_01.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40805_01.dart.intertwined.expect
index a97196b..2959bb1 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40805_01.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40805_01.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,16 +31,16 @@
                 listener: beginMetadataStar(covariant)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, covariant, late, final, final, Instance of 'SimpleType', x, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, covariant, late, final, {)
+              parseFields({, null, null, null, null, covariant, late, final, final, Instance of 'SimpleType', x, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, covariant, late, final, {)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(x)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(x, fieldDeclaration)
-                parseFieldInitializerOpt(x, x, late, null, null, final, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(x, x, late, null, null, null, final, DeclarationKind.Class, C)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, covariant, late, final, 1, covariant, ;)
+                listener: endClassFields(null, null, null, null, covariant, late, final, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40805_02.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40805_02.dart.expect
index 3a21148..87e9f40 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40805_02.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40805_02.dart.expect
@@ -20,7 +20,7 @@
         beginMetadataStar(covariant)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, covariant, late, final, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, covariant, late, final, {)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(x)
             handleType(int, null)
@@ -29,7 +29,7 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, late, final, 1, covariant, ;)
+          endClassFields(null, null, null, null, null, late, final, 1, covariant, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40805_02.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40805_02.dart.intertwined.expect
index 0ff88f6..a46fdb0 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40805_02.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40805_02.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,8 +31,8 @@
                 listener: beginMetadataStar(covariant)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, covariant, late, final, final, Instance of 'SimpleType', x, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, covariant, late, final, {)
+              parseFields({, null, null, null, null, covariant, late, final, final, Instance of 'SimpleType', x, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, covariant, late, final, {)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(x)
                 listener: handleType(int, null)
@@ -41,7 +40,7 @@
                   listener: handleIdentifier(x, fieldDeclaration)
                 reportRecoverableError(covariant, FinalAndCovariantLateWithInitializer)
                   listener: handleRecoverableError(FinalAndCovariantLateWithInitializer, covariant, covariant)
-                parseFieldInitializerOpt(x, x, late, null, null, final, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(x, x, late, null, null, null, final, DeclarationKind.Class, C)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -50,7 +49,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, late, final, 1, covariant, ;)
+                listener: endClassFields(null, null, null, null, null, late, final, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40805_03.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40805_03.dart.expect
index 8b9f461..b2cab2f 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40805_03.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40805_03.dart.expect
@@ -20,7 +20,7 @@
         beginMetadataStar(covariant)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, covariant, null, final, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, covariant, null, final, {)
             handleRecoverableError(FinalAndCovariant, covariant, covariant)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(x)
@@ -29,7 +29,7 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, final, 1, covariant, ;)
+          endClassFields(null, null, null, null, null, null, final, 1, covariant, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40805_03.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40805_03.dart.intertwined.expect
index 0810c19..4e26098 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40805_03.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40805_03.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,8 +31,8 @@
                 listener: beginMetadataStar(covariant)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, covariant, null, final, final, Instance of 'SimpleType', x, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, covariant, null, final, {)
+              parseFields({, null, null, null, null, covariant, null, final, final, Instance of 'SimpleType', x, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, covariant, null, final, {)
                 reportRecoverableError(covariant, FinalAndCovariant)
                   listener: handleRecoverableError(FinalAndCovariant, covariant, covariant)
                 listener: handleIdentifier(int, typeReference)
@@ -41,7 +40,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(x, fieldDeclaration)
-                parseFieldInitializerOpt(x, x, null, null, null, final, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(x, x, null, null, null, null, final, DeclarationKind.Class, C)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -50,7 +49,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, final, 1, covariant, ;)
+                listener: endClassFields(null, null, null, null, null, null, final, 1, covariant, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40834_01.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40834_01.dart.expect
index 813e919..eab0a48 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40834_01.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40834_01.dart.expect
@@ -14,24 +14,24 @@
         beginMetadataStar(String)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(String, typeReference)
             handleNoTypeArguments(?)
             handleType(String, ?)
             handleIdentifier(x, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 1, String, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, String, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(y)
             handleType(int, null)
             handleIdentifier(y, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(Foo)
         endMetadataStar(0)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40834_01.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40834_01.dart.intertwined.expect
index eb580a1..c81d4e5 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40834_01.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40834_01.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,16 +31,16 @@
                 listener: beginMetadataStar(String)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleNullableType', x, DeclarationKind.Class, Foo, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              parseFields({, null, null, null, null, null, null, null, {, Instance of 'SimpleNullableType', x, DeclarationKind.Class, Foo, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                 listener: handleIdentifier(String, typeReference)
                 listener: handleNoTypeArguments(?)
                 listener: handleType(String, ?)
                 ensureIdentifierPotentiallyRecovered(?, fieldDeclaration, false)
                   listener: handleIdentifier(x, fieldDeclaration)
-                parseFieldInitializerOpt(x, x, null, null, null, null, DeclarationKind.Class, Foo)
+                parseFieldInitializerOpt(x, x, null, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 1, String, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, String, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
@@ -49,16 +48,16 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', y, DeclarationKind.Class, Foo, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', y, DeclarationKind.Class, Foo, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(y)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(y, fieldDeclaration)
-                parseFieldInitializerOpt(y, y, null, null, null, null, DeclarationKind.Class, Foo)
+                parseFieldInitializerOpt(y, y, null, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, Foo)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40834_02.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40834_02.dart.expect
index ef765a7..ff4c676 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40834_02.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40834_02.dart.expect
@@ -14,24 +14,24 @@
         beginMetadataStar(String)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(String, typeReference)
             handleNoTypeArguments(?)
             handleType(String, ?)
             handleIdentifier(x, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 1, String, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, String, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(y)
             handleType(int, null)
             handleIdentifier(y, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(Foo)
         endMetadataStar(0)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40834_02.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40834_02.dart.intertwined.expect
index 7d6fb48..ab615a6 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40834_02.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40834_02.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,16 +31,16 @@
                 listener: beginMetadataStar(String)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleNullableType', x, DeclarationKind.Class, Foo, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              parseFields({, null, null, null, null, null, null, null, {, Instance of 'SimpleNullableType', x, DeclarationKind.Class, Foo, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                 listener: handleIdentifier(String, typeReference)
                 listener: handleNoTypeArguments(?)
                 listener: handleType(String, ?)
                 ensureIdentifierPotentiallyRecovered(?, fieldDeclaration, false)
                   listener: handleIdentifier(x, fieldDeclaration)
-                parseFieldInitializerOpt(x, x, null, null, null, null, DeclarationKind.Class, Foo)
+                parseFieldInitializerOpt(x, x, null, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 1, String, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, String, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
@@ -49,16 +48,16 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', y, DeclarationKind.Class, Foo, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', y, DeclarationKind.Class, Foo, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(y)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(y, fieldDeclaration)
-                parseFieldInitializerOpt(y, y, null, null, null, null, DeclarationKind.Class, Foo)
+                parseFieldInitializerOpt(y, y, null, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, Foo)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40834_03.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40834_03.dart.expect
index 7a1ab34..7bc7737 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40834_03.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40834_03.dart.expect
@@ -14,24 +14,24 @@
         beginMetadataStar(String)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(String, typeReference)
             handleNoTypeArguments(?)
             handleType(String, ?)
             handleIdentifier(x, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 1, String, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, String, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(y)
             handleType(int, null)
             handleIdentifier(y, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(Foo)
         endMetadataStar(0)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40834_03.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40834_03.dart.intertwined.expect
index 5fabee9..6f46cd0 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40834_03.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40834_03.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -32,16 +31,16 @@
                 listener: beginMetadataStar(String)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleNullableType', x, DeclarationKind.Class, Foo, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              parseFields({, null, null, null, null, null, null, null, {, Instance of 'SimpleNullableType', x, DeclarationKind.Class, Foo, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                 listener: handleIdentifier(String, typeReference)
                 listener: handleNoTypeArguments(?)
                 listener: handleType(String, ?)
                 ensureIdentifierPotentiallyRecovered(?, fieldDeclaration, false)
                   listener: handleIdentifier(x, fieldDeclaration)
-                parseFieldInitializerOpt(x, x, null, null, null, null, DeclarationKind.Class, Foo)
+                parseFieldInitializerOpt(x, x, null, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 1, String, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, String, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
@@ -49,16 +48,16 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', y, DeclarationKind.Class, Foo, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', y, DeclarationKind.Class, Foo, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(y)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(y, fieldDeclaration)
-                parseFieldInitializerOpt(y, y, null, null, null, null, DeclarationKind.Class, Foo)
+                parseFieldInitializerOpt(y, y, null, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, Foo)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_41177.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_41177.dart.expect
index e768c12..7f0bd3e 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_41177.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_41177.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_41177.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_41177.dart.intertwined.expect
index 9961d09..68efe3e 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_41177.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_41177.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_41597.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_41597.dart.expect
index 19a89b2..fc7ca09 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_41597.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_41597.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(bool)
   endMetadataStar(0)
   beginTopLevelMember(bool)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
       handleIdentifier(bool, typeReference)
       handleNoTypeArguments(x)
       handleType(bool, null)
@@ -13,7 +13,7 @@
   beginMetadataStar(bool)
   endMetadataStar(0)
   beginTopLevelMember(bool)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(bool, typeReference)
       handleNoTypeArguments(x)
       handleType(bool, null)
@@ -24,7 +24,7 @@
   beginMetadataStar(errors)
   endMetadataStar(0)
   beginTopLevelMember(errors)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleNoType(;)
       handleIdentifier(errors, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -134,7 +134,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_41597.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_41597.dart.intertwined.expect
index 3164440..085a195 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_41597.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_41597.dart.intertwined.expect
@@ -8,14 +8,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(bool)
-      parseFields(, null, null, null, null, null, null, , Instance of 'SimpleType', x, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+      parseFields(, null, null, null, null, null, null, null, , Instance of 'SimpleType', x, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
         listener: handleIdentifier(bool, typeReference)
         listener: handleNoTypeArguments(x)
         listener: handleType(bool, null)
         ensureIdentifierPotentiallyRecovered(bool, topLevelVariableDeclaration, false)
           listener: handleIdentifier(x, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(x, x, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(x, x, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, null, null, 1, bool, ;)
   listener: endTopLevelDeclaration(bool)
@@ -25,14 +25,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(bool)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', x, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', x, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(bool, typeReference)
         listener: handleNoTypeArguments(x)
         listener: handleType(bool, null)
         ensureIdentifierPotentiallyRecovered(bool, topLevelVariableDeclaration, false)
           listener: handleIdentifier(x, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(x, x, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(x, x, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, null, null, 1, bool, ;)
   listener: endTopLevelDeclaration(errors)
@@ -43,8 +43,8 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(errors)
       isReservedKeyword(()
-      parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, errors, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'NoType', null, errors, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleNoType(;)
         ensureIdentifierPotentiallyRecovered(;, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(errors, topLevelFunctionDeclaration)
@@ -186,8 +186,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -324,8 +323,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_42621.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_42621.dart.expect
index 69cb262..9b642f3 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_42621.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_42621.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(Order)
   endMetadataStar(0)
   beginTopLevelMember(Order)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleIdentifier(Order, typeReference)
       handleNoTypeArguments(method1)
       handleType(Order, null)
@@ -83,7 +83,7 @@
   beginMetadataStar(Order)
   endMetadataStar(0)
   beginTopLevelMember(Order)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(Order, typeReference)
       handleNoTypeArguments(method2)
       handleType(Order, null)
@@ -164,7 +164,7 @@
   beginMetadataStar(Order)
   endMetadataStar(0)
   beginTopLevelMember(Order)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(Order, typeReference)
       handleNoTypeArguments(method3)
       handleType(Order, null)
@@ -246,7 +246,7 @@
   beginMetadataStar(Order)
   endMetadataStar(0)
   beginTopLevelMember(Order)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleIdentifier(Order, typeReference)
       handleNoTypeArguments(method4)
       handleType(Order, null)
@@ -318,24 +318,24 @@
         beginMetadataStar(List)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(List, typeReference)
             handleNoTypeArguments(?)
             handleType(List, ?)
             handleIdentifier(x, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 1, List, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, List, ;)
         endMember()
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(?)
             handleType(int, ?)
             handleIdentifier(y, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_42621.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_42621.dart.intertwined.expect
index e24d47e..b07dc15 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_42621.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_42621.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(Order)
-      parseTopLevelMethod(, null, , Instance of 'SimpleType', null, method1, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'SimpleType', null, method1, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleIdentifier(Order, typeReference)
         listener: handleNoTypeArguments(method1)
         listener: handleType(Order, null)
@@ -174,8 +174,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(Order)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, method2, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, method2, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(Order, typeReference)
         listener: handleNoTypeArguments(method2)
         listener: handleType(Order, null)
@@ -340,8 +340,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(Order)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, method3, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, method3, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(Order, typeReference)
         listener: handleNoTypeArguments(method3)
         listener: handleType(Order, null)
@@ -516,8 +516,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(Order)
-      parseTopLevelMethod(}, null, }, Instance of 'SimpleType', null, method4, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'SimpleType', null, method4, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleIdentifier(Order, typeReference)
         listener: handleNoTypeArguments(method4)
         listener: handleType(Order, null)
@@ -634,8 +634,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -660,16 +659,16 @@
                 listener: beginMetadataStar(List)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleNullableType', x, DeclarationKind.Class, Order, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              parseFields({, null, null, null, null, null, null, null, {, Instance of 'SimpleNullableType', x, DeclarationKind.Class, Order, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                 listener: handleIdentifier(List, typeReference)
                 listener: handleNoTypeArguments(?)
                 listener: handleType(List, ?)
                 ensureIdentifierPotentiallyRecovered(?, fieldDeclaration, false)
                   listener: handleIdentifier(x, fieldDeclaration)
-                parseFieldInitializerOpt(x, x, null, null, null, null, DeclarationKind.Class, Order)
+                parseFieldInitializerOpt(x, x, null, null, null, null, null, DeclarationKind.Class, Order)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 1, List, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, List, ;)
               listener: endMember()
             notEofOrValue(}, int)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Order)
@@ -677,16 +676,16 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleNullableType', y, DeclarationKind.Class, Order, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleNullableType', y, DeclarationKind.Class, Order, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(?)
                 listener: handleType(int, ?)
                 ensureIdentifierPotentiallyRecovered(?, fieldDeclaration, false)
                   listener: handleIdentifier(y, fieldDeclaration)
-                parseFieldInitializerOpt(y, y, null, null, null, null, DeclarationKind.Class, Order)
+                parseFieldInitializerOpt(y, y, null, null, null, null, null, DeclarationKind.Class, Order)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_44477.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_44477.dart.expect
index a305eb1..3e3995b 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_44477.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_44477.dart.expect
@@ -26,7 +26,7 @@
   beginTopLevelMember(Future)
     handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
     // WARNING: Reporting at eof for .
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
       handleIdentifier(Future, typeReference)
       beginTypeArguments(<)
         handleIdentifier(List, typeReference)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_44477.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_44477.dart.intertwined.expect
index adc5a86..4d72599 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_44477.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_44477.dart.intertwined.expect
@@ -13,8 +13,8 @@
           listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
           listener: // WARNING: Reporting at eof for .
         rewriter()
-      parseFields(, null, null, null, null, null, null, , Instance of 'ComplexTypeInfo', , DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+      parseFields(, null, null, null, null, null, null, null, , Instance of 'ComplexTypeInfo', , DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
         ensureIdentifier(, typeReference)
           listener: handleIdentifier(Future, typeReference)
         listener: beginTypeArguments(<)
@@ -38,7 +38,7 @@
               listener: // WARNING: Reporting at eof for .
             rewriter()
           listener: handleIdentifier(, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(, , null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(, , null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer()
         ensureSemicolon()
           reportRecoverableError(>, Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}])
diff --git a/pkg/front_end/parser_testcases/nnbd/late_member.dart.expect b/pkg/front_end/parser_testcases/nnbd/late_member.dart.expect
index 971ab60..6a79a89 100644
--- a/pkg/front_end/parser_testcases/nnbd/late_member.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/late_member.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -99,7 +99,7 @@
   beginMetadataStar(late)
   endMetadataStar(0)
   beginTopLevelMember(late)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(late, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -171,7 +171,7 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(late)
             handleType(int, null)
@@ -179,7 +179,7 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/late_member.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/late_member.dart.intertwined.expect
index 68fb06e..ea1027e 100644
--- a/pkg/front_end/parser_testcases/nnbd/late_member.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/late_member.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
@@ -267,8 +267,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(late)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, late, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, late, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(late, topLevelFunctionDeclaration)
@@ -325,8 +325,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -417,8 +416,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -443,14 +441,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', late, DeclarationKind.Class, Y, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              parseFields({, null, null, null, null, null, null, null, {, Instance of 'SimpleType', late, DeclarationKind.Class, Y, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(late)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(late, fieldDeclaration)
-                parseFieldInitializerOpt(late, late, null, null, null, null, DeclarationKind.Class, Y)
+                parseFieldInitializerOpt(late, late, null, null, null, null, null, DeclarationKind.Class, Y)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -459,7 +457,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
diff --git a/pkg/front_end/parser_testcases/nnbd/late_modifier.dart.expect b/pkg/front_end/parser_testcases/nnbd/late_modifier.dart.expect
index 6cdeef3d..4d6028c 100644
--- a/pkg/front_end/parser_testcases/nnbd/late_modifier.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/late_modifier.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -117,7 +117,7 @@
   beginMetadataStar(late)
   endMetadataStar(0)
   beginTopLevelMember(late)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(late, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -189,7 +189,7 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(late)
             handleType(int, null)
@@ -197,7 +197,7 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/late_modifier.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/late_modifier.dart.intertwined.expect
index e56b220..ad365d3 100644
--- a/pkg/front_end/parser_testcases/nnbd/late_modifier.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/late_modifier.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
@@ -316,8 +316,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(late)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, late, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, late, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(late, topLevelFunctionDeclaration)
@@ -374,8 +374,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -466,8 +465,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -492,14 +490,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', late, DeclarationKind.Class, Y, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              parseFields({, null, null, null, null, null, null, null, {, Instance of 'SimpleType', late, DeclarationKind.Class, Y, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(late)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(late, fieldDeclaration)
-                parseFieldInitializerOpt(late, late, null, null, null, null, DeclarationKind.Class, Y)
+                parseFieldInitializerOpt(late, late, null, null, null, null, null, DeclarationKind.Class, Y)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -508,7 +506,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex.dart.expect
index 3b88ac0..9673703 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex.dart.intertwined.expect
index 1f6705c..5bc1168 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex_with_parens.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex_with_parens.dart.expect
index 27a18c6..d59a18a 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex_with_parens.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex_with_parens.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex_with_parens.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex_with_parens.dart.intertwined.expect
index 8f678d0..779bb69 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex_with_parens.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckBeforeIndex_with_parens.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex.dart.expect
index 24f6535..dd6ce2f 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex.dart.intertwined.expect
index 21d6ac3..5ed49af 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex2.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex2.dart.expect
index 43511af..df1aa00 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex2.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex2.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex2.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex2.dart.intertwined.expect
index 835a55b..28566d1 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex2.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex2.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex2_with_parens.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex2_with_parens.dart.expect
index 419aa04..fed0fd1 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex2_with_parens.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex2_with_parens.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex2_with_parens.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex2_with_parens.dart.intertwined.expect
index 64ea13a..40b8536 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex2_with_parens.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex2_with_parens.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3.dart.expect
index 5050179..595666c 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3.dart.intertwined.expect
index 4d0d581e..9e58ef9c 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3_with_parens.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3_with_parens.dart.expect
index 096a6b9..6bbea90 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3_with_parens.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3_with_parens.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3_with_parens.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3_with_parens.dart.intertwined.expect
index 43d4d51..8059ae9 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3_with_parens.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex3_with_parens.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4.dart.expect
index e58d1a7..b99baea 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4.dart.intertwined.expect
index 53ef115..d0ca72f 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4_with_parens.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4_with_parens.dart.expect
index 547ae08..71e11d0 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4_with_parens.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4_with_parens.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4_with_parens.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4_with_parens.dart.intertwined.expect
index 53029f6..b3d8ee3 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4_with_parens.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex4_with_parens.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5.dart.expect
index 24c1311..3305337 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5.dart.intertwined.expect
index d3b5d2b..b15f181 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5_with_parens.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5_with_parens.dart.expect
index 3683c7e..4f4a015 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5_with_parens.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5_with_parens.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5_with_parens.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5_with_parens.dart.intertwined.expect
index 58b1601..2b8b343 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5_with_parens.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex5_with_parens.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6.dart.expect
index 2cec617..3a6ac78 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6.dart.intertwined.expect
index 45e774e..bb93a2f 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6_with_parens.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6_with_parens.dart.expect
index 013e4c7..5555c17 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6_with_parens.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6_with_parens.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6_with_parens.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6_with_parens.dart.intertwined.expect
index 17963ec..71a5e93 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6_with_parens.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex6_with_parens.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex_with_parens.dart.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex_with_parens.dart.expect
index 69104ba..e8062f8 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex_with_parens.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex_with_parens.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex_with_parens.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex_with_parens.dart.intertwined.expect
index 6738bc5..60e3550f 100644
--- a/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex_with_parens.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/nullCheckOnIndex_with_parens.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/null_shorting_index.dart.expect b/pkg/front_end/parser_testcases/nnbd/null_shorting_index.dart.expect
index 0a7ab2c..cbf67f0 100644
--- a/pkg/front_end/parser_testcases/nnbd/null_shorting_index.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/null_shorting_index.dart.expect
@@ -79,7 +79,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/nnbd/null_shorting_index.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/null_shorting_index.dart.intertwined.expect
index 6e5e187..a5e27dc 100644
--- a/pkg/front_end/parser_testcases/nnbd/null_shorting_index.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/null_shorting_index.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -149,8 +148,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/nnbd/required_member.dart.expect b/pkg/front_end/parser_testcases/nnbd/required_member.dart.expect
index c6c7235..17cfea9 100644
--- a/pkg/front_end/parser_testcases/nnbd/required_member.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/required_member.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -99,7 +99,7 @@
   beginMetadataStar(required)
   endMetadataStar(0)
   beginTopLevelMember(required)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(required, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -171,7 +171,7 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(required)
             handleType(int, null)
@@ -179,7 +179,7 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/required_member.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/required_member.dart.intertwined.expect
index 3720001..8cb707f 100644
--- a/pkg/front_end/parser_testcases/nnbd/required_member.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/required_member.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
@@ -267,8 +267,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(required)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, required, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, required, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(required, topLevelFunctionDeclaration)
@@ -325,8 +325,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -417,8 +416,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -443,14 +441,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', required, DeclarationKind.Class, Y, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              parseFields({, null, null, null, null, null, null, null, {, Instance of 'SimpleType', required, DeclarationKind.Class, Y, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(required)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(required, fieldDeclaration)
-                parseFieldInitializerOpt(required, required, null, null, null, null, DeclarationKind.Class, Y)
+                parseFieldInitializerOpt(required, required, null, null, null, null, null, DeclarationKind.Class, Y)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -459,7 +457,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
diff --git a/pkg/front_end/parser_testcases/nnbd/required_modifier.dart.expect b/pkg/front_end/parser_testcases/nnbd/required_modifier.dart.expect
index e5047d9..7ece451 100644
--- a/pkg/front_end/parser_testcases/nnbd/required_modifier.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/required_modifier.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -99,7 +99,7 @@
   beginMetadataStar(required)
   endMetadataStar(0)
   beginTopLevelMember(required)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(required, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -182,7 +182,7 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(required)
             handleType(int, null)
@@ -190,7 +190,7 @@
             beginFieldInitializer(=)
               handleLiteralInt(42)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/nnbd/required_modifier.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/required_modifier.dart.intertwined.expect
index ff4806f..43339cd 100644
--- a/pkg/front_end/parser_testcases/nnbd/required_modifier.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/required_modifier.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
@@ -267,8 +267,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(required)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, required, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, required, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(required, topLevelFunctionDeclaration)
@@ -341,8 +341,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -433,8 +432,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -459,14 +457,14 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', required, DeclarationKind.Class, Y, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              parseFields({, null, null, null, null, null, null, null, {, Instance of 'SimpleType', required, DeclarationKind.Class, Y, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(required)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(required, fieldDeclaration)
-                parseFieldInitializerOpt(required, required, null, null, null, null, DeclarationKind.Class, Y)
+                parseFieldInitializerOpt(required, required, null, null, null, null, null, DeclarationKind.Class, Y)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -475,7 +473,7 @@
                           parseLiteralInt(=)
                             listener: handleLiteralInt(42)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 1, {, })
diff --git a/pkg/front_end/parser_testcases/no-triple-shift/define_triple_shift_method.dart.expect b/pkg/front_end/parser_testcases/no-triple-shift/define_triple_shift_method.dart.expect
index 635226a..c6ff7b0 100644
--- a/pkg/front_end/parser_testcases/no-triple-shift/define_triple_shift_method.dart.expect
+++ b/pkg/front_end/parser_testcases/no-triple-shift/define_triple_shift_method.dart.expect
@@ -64,7 +64,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/no-triple-shift/define_triple_shift_method.dart.intertwined.expect b/pkg/front_end/parser_testcases/no-triple-shift/define_triple_shift_method.dart.intertwined.expect
index f2bac28..92cd05f 100644
--- a/pkg/front_end/parser_testcases/no-triple-shift/define_triple_shift_method.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/no-triple-shift/define_triple_shift_method.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -89,8 +88,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/no-triple-shift/define_triple_shift_method_prime.dart.expect b/pkg/front_end/parser_testcases/no-triple-shift/define_triple_shift_method_prime.dart.expect
index 5120ea6..f73d693 100644
--- a/pkg/front_end/parser_testcases/no-triple-shift/define_triple_shift_method_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/no-triple-shift/define_triple_shift_method_prime.dart.expect
@@ -41,7 +41,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleNoType(})
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/no-triple-shift/define_triple_shift_method_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/no-triple-shift/define_triple_shift_method_prime.dart.intertwined.expect
index 8f13eb7..71b9bf9 100644
--- a/pkg/front_end/parser_testcases/no-triple-shift/define_triple_shift_method_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/no-triple-shift/define_triple_shift_method_prime.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -86,8 +85,8 @@
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(}, null, }, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleNoType(})
         ensureIdentifierPotentiallyRecovered(}, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/no-triple-shift/simple_attempted_usage_of_triple_shift.dart.expect b/pkg/front_end/parser_testcases/no-triple-shift/simple_attempted_usage_of_triple_shift.dart.expect
index 9e5e0d5..7d1245d 100644
--- a/pkg/front_end/parser_testcases/no-triple-shift/simple_attempted_usage_of_triple_shift.dart.expect
+++ b/pkg/front_end/parser_testcases/no-triple-shift/simple_attempted_usage_of_triple_shift.dart.expect
@@ -8,7 +8,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/no-triple-shift/simple_attempted_usage_of_triple_shift.dart.intertwined.expect b/pkg/front_end/parser_testcases/no-triple-shift/simple_attempted_usage_of_triple_shift.dart.intertwined.expect
index ac687d6..aabf7a7 100644
--- a/pkg/front_end/parser_testcases/no-triple-shift/simple_attempted_usage_of_triple_shift.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/no-triple-shift/simple_attempted_usage_of_triple_shift.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/no-triple-shift/triple_shift_not_triple_shift.dart.expect b/pkg/front_end/parser_testcases/no-triple-shift/triple_shift_not_triple_shift.dart.expect
index e3531de..e03ee2d 100644
--- a/pkg/front_end/parser_testcases/no-triple-shift/triple_shift_not_triple_shift.dart.expect
+++ b/pkg/front_end/parser_testcases/no-triple-shift/triple_shift_not_triple_shift.dart.expect
@@ -65,7 +65,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/no-triple-shift/triple_shift_not_triple_shift.dart.intertwined.expect b/pkg/front_end/parser_testcases/no-triple-shift/triple_shift_not_triple_shift.dart.intertwined.expect
index 24203cf..98f25c20 100644
--- a/pkg/front_end/parser_testcases/no-triple-shift/triple_shift_not_triple_shift.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/no-triple-shift/triple_shift_not_triple_shift.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(extension)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, extension, null, null, Instance of 'DirectiveContext')
-      parseTopLevelKeywordModifiers(, extension)
+    parseTopLevelKeywordDeclaration(, extension, null, Instance of 'DirectiveContext')
       parseExtension(extension)
         listener: beginExtensionDeclarationPrelude(extension)
         listener: handleNoTypeVariables(on)
@@ -131,8 +130,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, main, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, main, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
@@ -206,9 +205,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(abstract)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
-        parseTopLevelKeywordModifiers(abstract, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(abstract, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(abstract)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/no-triple-shift/triple_shift_symbol.dart.expect b/pkg/front_end/parser_testcases/no-triple-shift/triple_shift_symbol.dart.expect
index 0b9ca1d..3349c66 100644
--- a/pkg/front_end/parser_testcases/no-triple-shift/triple_shift_symbol.dart.expect
+++ b/pkg/front_end/parser_testcases/no-triple-shift/triple_shift_symbol.dart.expect
@@ -8,7 +8,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/no-triple-shift/triple_shift_symbol.dart.intertwined.expect b/pkg/front_end/parser_testcases/no-triple-shift/triple_shift_symbol.dart.intertwined.expect
index 9a4f6ba..e56cb27 100644
--- a/pkg/front_end/parser_testcases/no-triple-shift/triple_shift_symbol.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/no-triple-shift/triple_shift_symbol.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/non-nnbd/issue_39326.dart.expect b/pkg/front_end/parser_testcases/non-nnbd/issue_39326.dart.expect
index 00c203f..7824dd46 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/issue_39326.dart.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/issue_39326.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/non-nnbd/issue_39326.dart.intertwined.expect b/pkg/front_end/parser_testcases/non-nnbd/issue_39326.dart.intertwined.expect
index ccdb9f8..d3c8ed1 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/issue_39326.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/issue_39326.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional.dart.expect b/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional.dart.expect
index 537e3e4..ba8a1cc 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional.dart.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional.dart.intertwined.expect b/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional.dart.intertwined.expect
index cd8f064..ea5feb9 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_2.dart.expect b/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_2.dart.expect
index 947256d..3c88f4e 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_2.dart.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_2.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_2.dart.intertwined.expect b/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_2.dart.intertwined.expect
index 6c1ac05..42f9b1c 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_2.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_2.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_3.dart.expect b/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_3.dart.expect
index 7570ccb..99ba27f 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_3.dart.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_3.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(f)
   endMetadataStar(0)
   beginTopLevelMember(f)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleNoType()
       handleIdentifier(f, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_3.dart.intertwined.expect b/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_3.dart.intertwined.expect
index 2e8a975f..ce7e5a6 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_3.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_3.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(f)
       isReservedKeyword(()
-      parseTopLevelMethod(, null, , Instance of 'NoType', null, f, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'NoType', null, f, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleNoType()
         ensureIdentifierPotentiallyRecovered(, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(f, topLevelFunctionDeclaration)
diff --git a/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_4.dart.expect b/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_4.dart.expect
index 138a4ba..6b18cf8 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_4.dart.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_4.dart.expect
@@ -2,7 +2,7 @@
   beginMetadataStar(var)
   endMetadataStar(0)
   beginTopLevelMember(var)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, )
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, )
       handleNoType(var)
       handleIdentifier(a, topLevelVariableDeclaration)
       handleNoFieldInitializer(,)
@@ -19,7 +19,7 @@
   beginMetadataStar(List)
   endMetadataStar(0)
   beginTopLevelMember(List)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleIdentifier(List, typeReference)
       handleNoTypeArguments(get)
       handleType(List, null)
diff --git a/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_4.dart.intertwined.expect b/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_4.dart.intertwined.expect
index 1044c77..1f44de0 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_4.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/issue_40267_conditional_4.dart.intertwined.expect
@@ -8,28 +8,28 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(var)
-      parseFields(, null, null, null, null, null, var, var, Instance of 'NoType', a, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, var, )
+      parseFields(, null, null, null, null, null, null, var, var, Instance of 'NoType', a, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, var, )
         listener: handleNoType(var)
         ensureIdentifierPotentiallyRecovered(var, topLevelVariableDeclaration, false)
           listener: handleIdentifier(a, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(a, a, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(a, a, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(,)
         ensureIdentifier(,, topLevelVariableDeclaration)
           listener: handleIdentifier(b, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(b, b, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(b, b, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(,)
         ensureIdentifier(,, topLevelVariableDeclaration)
           listener: handleIdentifier(c, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(c, c, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(c, c, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(,)
         ensureIdentifier(,, topLevelVariableDeclaration)
           listener: handleIdentifier(d, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(d, d, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(d, d, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(,)
         ensureIdentifier(,, topLevelVariableDeclaration)
           listener: handleIdentifier(e, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(e, e, null, null, null, var, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(e, e, null, null, null, null, var, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, null, var, 5, var, ;)
   listener: endTopLevelDeclaration(List)
@@ -39,8 +39,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(List)
-      parseTopLevelMethod(;, null, ;, Instance of 'SimpleType', get, f, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'SimpleType', get, f, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleIdentifier(List, typeReference)
         listener: handleNoTypeArguments(get)
         listener: handleType(List, null)
diff --git a/pkg/front_end/parser_testcases/non-nnbd/issue_40288.dart.expect b/pkg/front_end/parser_testcases/non-nnbd/issue_40288.dart.expect
index ba8b0bb..625ab2e 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/issue_40288.dart.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/issue_40288.dart.expect
@@ -76,7 +76,7 @@
         beginMetadataStar(late)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(late, typeReference)
             handleNoTypeArguments(l)
             handleType(late, null)
@@ -88,12 +88,12 @@
               endArguments(0, (, ))
               handleSend(late, ;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, late, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, late, ;)
         endMember()
         beginMetadataStar(required)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(required, typeReference)
             handleNoTypeArguments(r)
             handleType(required, null)
@@ -105,7 +105,7 @@
               endArguments(0, (, ))
               handleSend(required, ;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, required, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, required, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/non-nnbd/issue_40288.dart.intertwined.expect b/pkg/front_end/parser_testcases/non-nnbd/issue_40288.dart.intertwined.expect
index 9ddff86..cc13d4e 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/issue_40288.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/issue_40288.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -71,8 +70,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -136,8 +134,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -162,14 +159,14 @@
                 listener: beginMetadataStar(late)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', l, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              parseFields({, null, null, null, null, null, null, null, {, Instance of 'SimpleType', l, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                 listener: handleIdentifier(late, typeReference)
                 listener: handleNoTypeArguments(l)
                 listener: handleType(late, null)
                 ensureIdentifierPotentiallyRecovered(late, fieldDeclaration, false)
                   listener: handleIdentifier(l, fieldDeclaration)
-                parseFieldInitializerOpt(l, l, null, null, null, null, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(l, l, null, null, null, null, null, DeclarationKind.Class, C)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -189,7 +186,7 @@
                                     listener: endArguments(0, (, ))
                               listener: handleSend(late, ;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, late, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, late, ;)
               listener: endMember()
             notEofOrValue(}, required)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -197,14 +194,14 @@
                 listener: beginMetadataStar(required)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(required, typeReference)
                 listener: handleNoTypeArguments(r)
                 listener: handleType(required, null)
                 ensureIdentifierPotentiallyRecovered(required, fieldDeclaration, false)
                   listener: handleIdentifier(r, fieldDeclaration)
-                parseFieldInitializerOpt(r, r, null, null, null, null, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(r, r, null, null, null, null, null, DeclarationKind.Class, C)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -224,7 +221,7 @@
                                     listener: endArguments(0, (, ))
                               listener: handleSend(required, ;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, required, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, required, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
diff --git a/pkg/front_end/parser_testcases/non-nnbd/issue_40288_prime.dart.expect b/pkg/front_end/parser_testcases/non-nnbd/issue_40288_prime.dart.expect
index 369e04b..13464ad 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/issue_40288_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/issue_40288_prime.dart.expect
@@ -76,7 +76,7 @@
         beginMetadataStar(Xlate)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(Xlate, typeReference)
             handleNoTypeArguments(l)
             handleType(Xlate, null)
@@ -88,12 +88,12 @@
               endArguments(0, (, ))
               handleSend(Xlate, ;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, Xlate, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, Xlate, ;)
         endMember()
         beginMetadataStar(Xrequired)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(Xrequired, typeReference)
             handleNoTypeArguments(r)
             handleType(Xrequired, null)
@@ -105,7 +105,7 @@
               endArguments(0, (, ))
               handleSend(Xrequired, ;)
             endFieldInitializer(=, ;)
-          endClassFields(null, null, null, null, null, null, 1, Xrequired, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, Xrequired, ;)
         endMember()
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
     endClassDeclaration(class, })
diff --git a/pkg/front_end/parser_testcases/non-nnbd/issue_40288_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/non-nnbd/issue_40288_prime.dart.intertwined.expect
index 0b0d21f..3a3b363 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/issue_40288_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/issue_40288_prime.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -71,8 +70,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -136,8 +134,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -162,14 +159,14 @@
                 listener: beginMetadataStar(Xlate)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', l, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              parseFields({, null, null, null, null, null, null, null, {, Instance of 'SimpleType', l, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                 listener: handleIdentifier(Xlate, typeReference)
                 listener: handleNoTypeArguments(l)
                 listener: handleType(Xlate, null)
                 ensureIdentifierPotentiallyRecovered(Xlate, fieldDeclaration, false)
                   listener: handleIdentifier(l, fieldDeclaration)
-                parseFieldInitializerOpt(l, l, null, null, null, null, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(l, l, null, null, null, null, null, DeclarationKind.Class, C)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -189,7 +186,7 @@
                                     listener: endArguments(0, (, ))
                               listener: handleSend(Xlate, ;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, Xlate, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, Xlate, ;)
               listener: endMember()
             notEofOrValue(}, Xrequired)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -197,14 +194,14 @@
                 listener: beginMetadataStar(Xrequired)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.Class, C, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', r, DeclarationKind.Class, C, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(Xrequired, typeReference)
                 listener: handleNoTypeArguments(r)
                 listener: handleType(Xrequired, null)
                 ensureIdentifierPotentiallyRecovered(Xrequired, fieldDeclaration, false)
                   listener: handleIdentifier(r, fieldDeclaration)
-                parseFieldInitializerOpt(r, r, null, null, null, null, DeclarationKind.Class, C)
+                parseFieldInitializerOpt(r, r, null, null, null, null, null, DeclarationKind.Class, C)
                   listener: beginFieldInitializer(=)
                   parseExpression(=)
                     parsePrecedenceExpression(=, 1, true)
@@ -224,7 +221,7 @@
                                     listener: endArguments(0, (, ))
                               listener: handleSend(Xrequired, ;)
                   listener: endFieldInitializer(=, ;)
-                listener: endClassFields(null, null, null, null, null, null, 1, Xrequired, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, Xrequired, ;)
               listener: endMember()
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 2, {, })
diff --git a/pkg/front_end/parser_testcases/non-nnbd/nullable_type_argument.dart.intertwined.expect b/pkg/front_end/parser_testcases/non-nnbd/nullable_type_argument.dart.intertwined.expect
index 6930e59..6bf308c 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/nullable_type_argument.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/nullable_type_argument.dart.intertwined.expect
@@ -6,8 +6,7 @@
     parseMetadataStar()
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(, class)
+    parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -42,8 +41,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/parser_testcases/non-nnbd/use_late_in_non_nnbd.dart.expect b/pkg/front_end/parser_testcases/non-nnbd/use_late_in_non_nnbd.dart.expect
index 0b8fbe1..dd68ff3 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/use_late_in_non_nnbd.dart.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/use_late_in_non_nnbd.dart.expect
@@ -64,7 +64,7 @@
   beginMetadataStar(int)
   endMetadataStar(0)
   beginTopLevelMember(int)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(x1)
       handleType(int, null)
@@ -76,7 +76,7 @@
   endMetadataStar(0)
   beginTopLevelMember(late)
     handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, late, null, late)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, late, null, late)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(x2)
       handleType(int, null)
@@ -88,7 +88,7 @@
   endMetadataStar(0)
   beginTopLevelMember(late)
     handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, late, null, late)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, late, null, late)
       handleIdentifier(List, typeReference)
       beginTypeArguments(<)
         handleIdentifier(int, typeReference)
@@ -104,7 +104,7 @@
   endMetadataStar(0)
   beginTopLevelMember(late)
     handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, late, final, late)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, late, final, late)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(x4)
       handleType(int, null)
@@ -115,7 +115,7 @@
   beginMetadataStar(late)
   endMetadataStar(0)
   beginTopLevelMember(late)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleIdentifier(late, typeReference)
       handleNoTypeArguments(x5)
       handleType(late, null)
@@ -132,7 +132,7 @@
   beginMetadataStar(late)
   endMetadataStar(0)
   beginTopLevelMember(late)
-    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
       handleRecoverableError(MissingConstFinalVarOrType, late, late)
       handleNoType(;)
       handleIdentifier(late, topLevelVariableDeclaration)
@@ -148,7 +148,7 @@
   beginMetadataStar(main)
   endMetadataStar(0)
   beginTopLevelMember(main)
-    beginTopLevelMethod(;, null)
+    beginTopLevelMethod(;, null, null)
       handleNoType(;)
       handleIdentifier(main, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -256,31 +256,31 @@
         beginMetadataStar(int)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(z1)
             handleType(int, null)
             handleIdentifier(z1, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, int, ;)
         endMember()
         beginMetadataStar(late)
         endMetadataStar(0)
         handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, late, null, late)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, late, null, late)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(z2)
             handleType(int, null)
             handleIdentifier(z2, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, late, null, 1, int, ;)
+          endClassFields(null, null, null, null, null, late, null, 1, int, ;)
         endMember()
         beginMetadataStar(late)
         endMetadataStar(0)
         handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, late, null, late)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, late, null, late)
             handleIdentifier(List, typeReference)
             beginTypeArguments(<)
               handleIdentifier(int, typeReference)
@@ -290,30 +290,30 @@
             handleType(List, null)
             handleIdentifier(x3, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, late, null, 1, List, ;)
+          endClassFields(null, null, null, null, null, late, null, 1, List, ;)
         endMember()
         beginMetadataStar(late)
         endMetadataStar(0)
         handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, late, final, late)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, late, final, late)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(z4)
             handleType(int, null)
             handleIdentifier(z4, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, late, final, 1, final, ;)
+          endClassFields(null, null, null, null, null, late, final, 1, final, ;)
         endMember()
         beginMetadataStar(late)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleIdentifier(late, typeReference)
             handleNoTypeArguments(z5)
             handleType(late, null)
             handleIdentifier(z5, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 1, late, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, late, ;)
         endMember()
         beginMetadataStar(;)
         endMetadataStar(0)
@@ -324,12 +324,12 @@
         beginMetadataStar(late)
         endMetadataStar(0)
         beginMember()
-          beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+          beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
             handleRecoverableError(MissingConstFinalVarOrType, late, late)
             handleNoType(;)
             handleIdentifier(late, fieldDeclaration)
             handleNoFieldInitializer(;)
-          endClassFields(null, null, null, null, null, null, 1, late, ;)
+          endClassFields(null, null, null, null, null, null, null, 1, late, ;)
         endMember()
         beginMetadataStar(;)
         endMetadataStar(0)
diff --git a/pkg/front_end/parser_testcases/non-nnbd/use_late_in_non_nnbd.dart.intertwined.expect b/pkg/front_end/parser_testcases/non-nnbd/use_late_in_non_nnbd.dart.intertwined.expect
index 80ccd4a..c03aca1 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/use_late_in_non_nnbd.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/use_late_in_non_nnbd.dart.intertwined.expect
@@ -8,14 +8,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(int)
-      parseFields(, null, null, null, null, null, null, , Instance of 'SimpleType', x1, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, )
+      parseFields(, null, null, null, null, null, null, null, , Instance of 'SimpleType', x1, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, )
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(x1)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(x1, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(x1, x1, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(x1, x1, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, null, null, 1, int, ;)
   listener: endTopLevelDeclaration(late)
@@ -28,14 +28,14 @@
       indicatesMethodOrField(;)
       reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
         listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
-      parseFields(late, null, null, null, null, late, null, late, Instance of 'SimpleType', x2, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, late, null, late)
+      parseFields(late, null, null, null, null, null, late, null, late, Instance of 'SimpleType', x2, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, late, null, late)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(x2)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(x2, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(x2, x2, late, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(x2, x2, late, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, late, null, 1, int, ;)
   listener: endTopLevelDeclaration(late)
@@ -48,8 +48,8 @@
       indicatesMethodOrField(;)
       reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
         listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
-      parseFields(late, null, null, null, null, late, null, late, Instance of 'SimpleTypeWith1Argument', x3, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, late, null, late)
+      parseFields(late, null, null, null, null, null, late, null, late, Instance of 'SimpleTypeWith1Argument', x3, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, late, null, late)
         listener: handleIdentifier(List, typeReference)
         listener: beginTypeArguments(<)
         listener: handleIdentifier(int, typeReference)
@@ -59,7 +59,7 @@
         listener: handleType(List, null)
         ensureIdentifierPotentiallyRecovered(>, topLevelVariableDeclaration, false)
           listener: handleIdentifier(x3, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(x3, x3, late, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(x3, x3, late, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, late, null, 1, List, ;)
   listener: endTopLevelDeclaration(late)
@@ -72,14 +72,14 @@
       indicatesMethodOrField(;)
       reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
         listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
-      parseFields(late, null, null, null, null, late, final, final, Instance of 'SimpleType', x4, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, late, final, late)
+      parseFields(late, null, null, null, null, null, late, final, final, Instance of 'SimpleType', x4, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, late, final, late)
         listener: handleIdentifier(int, typeReference)
         listener: handleNoTypeArguments(x4)
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           listener: handleIdentifier(x4, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(x4, x4, late, null, null, final, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(x4, x4, late, null, null, null, final, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, late, final, 1, final, ;)
   listener: endTopLevelDeclaration(late)
@@ -89,14 +89,14 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(late)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', x5, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', x5, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         listener: handleIdentifier(late, typeReference)
         listener: handleNoTypeArguments(x5)
         listener: handleType(late, null)
         ensureIdentifierPotentiallyRecovered(late, topLevelVariableDeclaration, false)
           listener: handleIdentifier(x5, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(x5, x5, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(x5, x5, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, null, null, 1, late, ;)
   listener: endTopLevelDeclaration(;)
@@ -117,14 +117,14 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(late)
       isReservedKeyword(;)
-      parseFields(;, null, null, null, null, null, null, ;, Instance of 'NoType', late, DeclarationKind.TopLevel, null, false)
-        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, ;)
+      parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'NoType', late, DeclarationKind.TopLevel, null, false)
+        listener: beginFields(DeclarationKind.TopLevel, null, null, null, null, null, null, null, ;)
         reportRecoverableError(late, MissingConstFinalVarOrType)
           listener: handleRecoverableError(MissingConstFinalVarOrType, late, late)
         listener: handleNoType(;)
         ensureIdentifierPotentiallyRecovered(;, topLevelVariableDeclaration, false)
           listener: handleIdentifier(late, topLevelVariableDeclaration)
-        parseFieldInitializerOpt(late, late, null, null, null, null, DeclarationKind.TopLevel, null)
+        parseFieldInitializerOpt(late, late, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: handleNoFieldInitializer(;)
         listener: endTopLevelFields(null, null, null, null, null, 1, late, ;)
   listener: endTopLevelDeclaration(;)
@@ -145,8 +145,8 @@
     parseTopLevelMemberImpl(;)
       listener: beginTopLevelMember(main)
       isReservedKeyword(()
-      parseTopLevelMethod(;, null, ;, Instance of 'NoType', null, main, false)
-        listener: beginTopLevelMethod(;, null)
+      parseTopLevelMethod(;, null, null, ;, Instance of 'NoType', null, main, false)
+        listener: beginTopLevelMethod(;, null, null)
         listener: handleNoType(;)
         ensureIdentifierPotentiallyRecovered(;, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(main, topLevelFunctionDeclaration)
@@ -335,8 +335,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
@@ -361,16 +360,16 @@
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', z1, DeclarationKind.Class, Foo, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+              parseFields({, null, null, null, null, null, null, null, {, Instance of 'SimpleType', z1, DeclarationKind.Class, Foo, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(z1)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(z1, fieldDeclaration)
-                parseFieldInitializerOpt(z1, z1, null, null, null, null, DeclarationKind.Class, Foo)
+                parseFieldInitializerOpt(z1, z1, null, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, late)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
@@ -381,16 +380,16 @@
               reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
                 listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
               listener: beginMember()
-              parseFields(late, null, null, null, null, late, null, late, Instance of 'SimpleType', z2, DeclarationKind.Class, Foo, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, late, null, late)
+              parseFields(late, null, null, null, null, null, late, null, late, Instance of 'SimpleType', z2, DeclarationKind.Class, Foo, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, late, null, late)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(z2)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(z2, fieldDeclaration)
-                parseFieldInitializerOpt(z2, z2, late, null, null, null, DeclarationKind.Class, Foo)
+                parseFieldInitializerOpt(z2, z2, late, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, late, null, 1, int, ;)
+                listener: endClassFields(null, null, null, null, null, late, null, 1, int, ;)
               listener: endMember()
             notEofOrValue(}, late)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
@@ -401,8 +400,8 @@
               reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
                 listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
               listener: beginMember()
-              parseFields(late, null, null, null, null, late, null, late, Instance of 'SimpleTypeWith1Argument', x3, DeclarationKind.Class, Foo, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, late, null, late)
+              parseFields(late, null, null, null, null, null, late, null, late, Instance of 'SimpleTypeWith1Argument', x3, DeclarationKind.Class, Foo, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, late, null, late)
                 listener: handleIdentifier(List, typeReference)
                 listener: beginTypeArguments(<)
                 listener: handleIdentifier(int, typeReference)
@@ -412,9 +411,9 @@
                 listener: handleType(List, null)
                 ensureIdentifierPotentiallyRecovered(>, fieldDeclaration, false)
                   listener: handleIdentifier(x3, fieldDeclaration)
-                parseFieldInitializerOpt(x3, x3, late, null, null, null, DeclarationKind.Class, Foo)
+                parseFieldInitializerOpt(x3, x3, late, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, late, null, 1, List, ;)
+                listener: endClassFields(null, null, null, null, null, late, null, 1, List, ;)
               listener: endMember()
             notEofOrValue(}, late)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
@@ -425,16 +424,16 @@
               reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
                 listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
               listener: beginMember()
-              parseFields(late, null, null, null, null, late, final, final, Instance of 'SimpleType', z4, DeclarationKind.Class, Foo, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, late, final, late)
+              parseFields(late, null, null, null, null, null, late, final, final, Instance of 'SimpleType', z4, DeclarationKind.Class, Foo, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, late, final, late)
                 listener: handleIdentifier(int, typeReference)
                 listener: handleNoTypeArguments(z4)
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                   listener: handleIdentifier(z4, fieldDeclaration)
-                parseFieldInitializerOpt(z4, z4, late, null, null, final, DeclarationKind.Class, Foo)
+                parseFieldInitializerOpt(z4, z4, late, null, null, null, final, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, late, final, 1, final, ;)
+                listener: endClassFields(null, null, null, null, null, late, final, 1, final, ;)
               listener: endMember()
             notEofOrValue(}, late)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
@@ -442,16 +441,16 @@
                 listener: beginMetadataStar(late)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'SimpleType', z5, DeclarationKind.Class, Foo, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'SimpleType', z5, DeclarationKind.Class, Foo, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 listener: handleIdentifier(late, typeReference)
                 listener: handleNoTypeArguments(z5)
                 listener: handleType(late, null)
                 ensureIdentifierPotentiallyRecovered(late, fieldDeclaration, false)
                   listener: handleIdentifier(z5, fieldDeclaration)
-                parseFieldInitializerOpt(z5, z5, null, null, null, null, DeclarationKind.Class, Foo)
+                parseFieldInitializerOpt(z5, z5, null, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 1, late, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, late, ;)
               listener: endMember()
             notEofOrValue(}, ;)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
@@ -459,7 +458,7 @@
                 listener: beginMetadataStar(;)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(;, ;, null, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, Foo)
+              recoverFromInvalidMember(;, ;, null, null, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, Foo)
                 reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
                   listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {lexeme: ;}], ;, ;)
                 listener: handleInvalidMember(;)
@@ -471,16 +470,16 @@
                 listener: endMetadataStar(0)
               listener: beginMember()
               isReservedKeyword(;)
-              parseFields(;, null, null, null, null, null, null, ;, Instance of 'NoType', late, DeclarationKind.Class, Foo, false)
-                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, ;)
+              parseFields(;, null, null, null, null, null, null, null, ;, Instance of 'NoType', late, DeclarationKind.Class, Foo, false)
+                listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, ;)
                 reportRecoverableError(late, MissingConstFinalVarOrType)
                   listener: handleRecoverableError(MissingConstFinalVarOrType, late, late)
                 listener: handleNoType(;)
                 ensureIdentifierPotentiallyRecovered(;, fieldDeclaration, false)
                   listener: handleIdentifier(late, fieldDeclaration)
-                parseFieldInitializerOpt(late, late, null, null, null, null, DeclarationKind.Class, Foo)
+                parseFieldInitializerOpt(late, late, null, null, null, null, null, DeclarationKind.Class, Foo)
                   listener: handleNoFieldInitializer(;)
-                listener: endClassFields(null, null, null, null, null, null, 1, late, ;)
+                listener: endClassFields(null, null, null, null, null, null, null, 1, late, ;)
               listener: endMember()
             notEofOrValue(}, ;)
             parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, Foo)
@@ -488,7 +487,7 @@
                 listener: beginMetadataStar(;)
                 listener: endMetadataStar(0)
               listener: beginMember()
-              recoverFromInvalidMember(;, ;, null, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, Foo)
+              recoverFromInvalidMember(;, ;, null, null, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, Foo)
                 reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
                   listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {lexeme: ;}], ;, ;)
                 listener: handleInvalidMember(;)
diff --git a/pkg/front_end/parser_testcases/non-nnbd/use_required_in_non_nnbd.dart.expect b/pkg/front_end/parser_testcases/non-nnbd/use_required_in_non_nnbd.dart.expect
index 11a0ddd..2c8c319 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/use_required_in_non_nnbd.dart.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/use_required_in_non_nnbd.dart.expect
@@ -16,7 +16,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(, null)
+    beginTopLevelMethod(, null, null)
       handleVoidKeyword(void)
       handleIdentifier(foo1, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -52,7 +52,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(foo2, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
@@ -87,7 +87,7 @@
   beginMetadataStar(void)
   endMetadataStar(0)
   beginTopLevelMember(void)
-    beginTopLevelMethod(}, null)
+    beginTopLevelMethod(}, null, null)
       handleVoidKeyword(void)
       handleIdentifier(foo3, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
diff --git a/pkg/front_end/parser_testcases/non-nnbd/use_required_in_non_nnbd.dart.intertwined.expect b/pkg/front_end/parser_testcases/non-nnbd/use_required_in_non_nnbd.dart.intertwined.expect
index bfc0623..084a1cd 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/use_required_in_non_nnbd.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/use_required_in_non_nnbd.dart.intertwined.expect
@@ -8,8 +8,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(, null, , Instance of 'VoidType', null, foo1, false)
-        listener: beginTopLevelMethod(, null)
+      parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, foo1, false)
+        listener: beginTopLevelMethod(, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(foo1, topLevelFunctionDeclaration)
@@ -91,8 +91,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, foo2, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, foo2, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(foo2, topLevelFunctionDeclaration)
@@ -172,8 +172,8 @@
       listener: endMetadataStar(0)
     parseTopLevelMemberImpl(})
       listener: beginTopLevelMember(void)
-      parseTopLevelMethod(}, null, }, Instance of 'VoidType', null, foo3, false)
-        listener: beginTopLevelMethod(}, null)
+      parseTopLevelMethod(}, null, null, }, Instance of 'VoidType', null, foo3, false)
+        listener: beginTopLevelMethod(}, null, null)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
           listener: handleIdentifier(foo3, topLevelFunctionDeclaration)
@@ -253,8 +253,7 @@
     parseMetadataStar(})
       listener: beginMetadataStar(class)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
-      parseClassDeclarationModifiers(}, class)
+    parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
       parseClassOrNamedMixinApplication(null, null, null, class)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/test/lint_suite.dart b/pkg/front_end/test/lint_suite.dart
index 16bc592..175b648 100644
--- a/pkg/front_end/test/lint_suite.dart
+++ b/pkg/front_end/test/lint_suite.dart
@@ -259,6 +259,7 @@
   @override
   void endClassFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
diff --git a/pkg/front_end/test/parser_suite.dart b/pkg/front_end/test/parser_suite.dart
index 5910e30..9ed7b26 100644
--- a/pkg/front_end/test/parser_suite.dart
+++ b/pkg/front_end/test/parser_suite.dart
@@ -88,18 +88,28 @@
 ScannerConfiguration scannerConfiguration = new ScannerConfiguration(
     enableTripleShift: true,
     enableExtensionMethods: true,
-    enableNonNullable: true);
+    enableNonNullable: true,
+    forAugmentationLibrary: false);
 
 ScannerConfiguration scannerConfigurationNonNNBD = new ScannerConfiguration(
     enableTripleShift: true,
     enableExtensionMethods: true,
-    enableNonNullable: false);
+    enableNonNullable: false,
+    forAugmentationLibrary: false);
 
 ScannerConfiguration scannerConfigurationNonTripleShift =
     new ScannerConfiguration(
         enableTripleShift: false,
         enableExtensionMethods: true,
-        enableNonNullable: true);
+        enableNonNullable: true,
+        forAugmentationLibrary: false);
+
+ScannerConfiguration scannerConfigurationAugmentation =
+    new ScannerConfiguration(
+        enableTripleShift: true,
+        enableExtensionMethods: true,
+        enableNonNullable: true,
+        forAugmentationLibrary: true);
 
 class Context extends ChainContext with MatchContext {
   @override
@@ -432,6 +442,8 @@
     config = scannerConfigurationNonNNBD;
   } else if (firstDir == "no-triple-shift") {
     config = scannerConfigurationNonTripleShift;
+  } else if (firstDir == "augmentation") {
+    config = scannerConfigurationAugmentation;
   } else {
     config = scannerConfiguration;
   }
diff --git a/pkg/front_end/test/parser_test_listener.dart b/pkg/front_end/test/parser_test_listener.dart
index 15419a6..a3b7fc2 100644
--- a/pkg/front_end/test/parser_test_listener.dart
+++ b/pkg/front_end/test/parser_test_listener.dart
@@ -261,10 +261,13 @@
   }
 
   @override
-  void beginMixinDeclaration(Token mixinKeyword, Token name) {
+  void beginMixinDeclaration(
+      Token? augmentToken, Token mixinKeyword, Token name) {
+    seen(augmentToken);
     seen(mixinKeyword);
     seen(name);
-    doPrint('beginMixinDeclaration(' '$mixinKeyword, ' '$name)');
+    doPrint(
+        'beginMixinDeclaration(' '$augmentToken, ' '$mixinKeyword, ' '$name)');
     indent++;
   }
 
@@ -664,6 +667,7 @@
   @override
   void endClassFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -674,6 +678,7 @@
       Token endToken) {
     indent--;
     seen(abstractToken);
+    seen(augmentToken);
     seen(externalToken);
     seen(staticToken);
     seen(covariantToken);
@@ -683,6 +688,7 @@
     seen(endToken);
     doPrint('endClassFields('
         '$abstractToken, '
+        '$augmentToken, '
         '$externalToken, '
         '$staticToken, '
         '$covariantToken, '
@@ -696,6 +702,7 @@
   @override
   void endMixinFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -706,6 +713,7 @@
       Token endToken) {
     indent--;
     seen(abstractToken);
+    seen(augmentToken);
     seen(externalToken);
     seen(staticToken);
     seen(covariantToken);
@@ -715,6 +723,7 @@
     seen(endToken);
     doPrint('endMixinFields('
         '$abstractToken, '
+        '$augmentToken, '
         '$externalToken, '
         '$staticToken, '
         '$covariantToken, '
@@ -728,6 +737,7 @@
   @override
   void endExtensionFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -738,6 +748,7 @@
       Token endToken) {
     indent--;
     seen(abstractToken);
+    seen(augmentToken);
     seen(externalToken);
     seen(staticToken);
     seen(covariantToken);
@@ -747,6 +758,7 @@
     seen(endToken);
     doPrint('endExtensionFields('
         '$abstractToken, '
+        '$augmentToken, '
         '$externalToken, '
         '$staticToken, '
         '$covariantToken, '
@@ -760,6 +772,7 @@
   @override
   void endEnumFields(
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -770,6 +783,7 @@
       Token endToken) {
     indent--;
     seen(abstractToken);
+    seen(augmentToken);
     seen(externalToken);
     seen(staticToken);
     seen(covariantToken);
@@ -779,6 +793,7 @@
     seen(endToken);
     doPrint('endEnumFields('
         '$abstractToken, '
+        '$augmentToken, '
         '$externalToken, '
         '$staticToken, '
         '$covariantToken, '
@@ -1796,6 +1811,7 @@
   void beginFields(
       DeclarationKind declarationKind,
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -1803,6 +1819,7 @@
       Token? varFinalOrConst,
       Token lastConsumed) {
     seen(abstractToken);
+    seen(augmentToken);
     seen(externalToken);
     seen(staticToken);
     seen(covariantToken);
@@ -1812,6 +1829,7 @@
     doPrint('beginFields('
         '$declarationKind, '
         '$abstractToken, '
+        '$augmentToken, '
         '$externalToken, '
         '$staticToken, '
         '$covariantToken, '
@@ -1851,10 +1869,15 @@
   }
 
   @override
-  void beginTopLevelMethod(Token lastConsumed, Token? externalToken) {
+  void beginTopLevelMethod(
+      Token lastConsumed, Token? augmentToken, Token? externalToken) {
     seen(lastConsumed);
+    seen(augmentToken);
     seen(externalToken);
-    doPrint('beginTopLevelMethod(' '$lastConsumed, ' '$externalToken)');
+    doPrint('beginTopLevelMethod('
+        '$lastConsumed, '
+        '$augmentToken, '
+        '$externalToken)');
     indent++;
   }
 
diff --git a/pkg/front_end/test/parser_test_parser.dart b/pkg/front_end/test/parser_test_parser.dart
index 633d008..0e5c582 100644
--- a/pkg/front_end/test/parser_test_parser.dart
+++ b/pkg/front_end/test/parser_test_parser.dart
@@ -162,48 +162,16 @@
   }
 
   @override
-  Token? parseClassDeclarationModifiers(Token start, Token keyword) {
-    doPrint('parseClassDeclarationModifiers(' '$start, ' '$keyword)');
-    indent++;
-    var result = super.parseClassDeclarationModifiers(start, keyword);
-    indent--;
-    return result;
-  }
-
-  @override
-  void parseTopLevelKeywordModifiers(Token start, Token keyword) {
-    doPrint('parseTopLevelKeywordModifiers(' '$start, ' '$keyword)');
-    indent++;
-    var result = super.parseTopLevelKeywordModifiers(start, keyword);
-    indent--;
-    return result;
-  }
-
-  @override
-  void reportTopLevelModifierError(Token modifier, Token afterModifiers) {
-    doPrint('reportTopLevelModifierError(' '$modifier, ' '$afterModifiers)');
-    indent++;
-    var result = super.reportTopLevelModifierError(modifier, afterModifiers);
-    indent--;
-    return result;
-  }
-
-  @override
-  Token parseTopLevelKeywordDeclaration(
-      Token start,
-      Token keyword,
-      Token? macroToken,
-      Token? augmentToken,
-      DirectiveContext? directiveState) {
+  Token parseTopLevelKeywordDeclaration(Token start, Token keyword,
+      Token? macroToken, DirectiveContext? directiveState) {
     doPrint('parseTopLevelKeywordDeclaration('
         '$start, '
         '$keyword, '
         '$macroToken, '
-        '$augmentToken, '
         '$directiveState)');
     indent++;
     var result = super.parseTopLevelKeywordDeclaration(
-        start, keyword, macroToken, augmentToken, directiveState);
+        start, keyword, macroToken, directiveState);
     indent--;
     return result;
   }
@@ -672,10 +640,10 @@
   }
 
   @override
-  Token parseMixin(Token mixinKeyword) {
-    doPrint('parseMixin(' '$mixinKeyword)');
+  Token parseMixin(Token? augmentToken, Token mixinKeyword) {
+    doPrint('parseMixin(' '$augmentToken, ' '$mixinKeyword)');
     indent++;
-    var result = super.parseMixin(mixinKeyword);
+    var result = super.parseMixin(augmentToken, mixinKeyword);
     indent--;
     return result;
   }
@@ -826,6 +794,7 @@
   Token parseFields(
       Token beforeStart,
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -840,6 +809,7 @@
     doPrint('parseFields('
         '$beforeStart, '
         '$abstractToken, '
+        '$augmentToken, '
         '$externalToken, '
         '$staticToken, '
         '$covariantToken, '
@@ -855,6 +825,7 @@
     var result = super.parseFields(
         beforeStart,
         abstractToken,
+        augmentToken,
         externalToken,
         staticToken,
         covariantToken,
@@ -873,6 +844,7 @@
   @override
   Token parseTopLevelMethod(
       Token beforeStart,
+      Token? augmentToken,
       Token? externalToken,
       Token beforeType,
       TypeInfo typeInfo,
@@ -881,6 +853,7 @@
       bool nameIsRecovered) {
     doPrint('parseTopLevelMethod('
         '$beforeStart, '
+        '$augmentToken, '
         '$externalToken, '
         '$beforeType, '
         '$typeInfo, '
@@ -888,8 +861,8 @@
         '$name, '
         '$nameIsRecovered)');
     indent++;
-    var result = super.parseTopLevelMethod(beforeStart, externalToken,
-        beforeType, typeInfo, getOrSet, name, nameIsRecovered);
+    var result = super.parseTopLevelMethod(beforeStart, augmentToken,
+        externalToken, beforeType, typeInfo, getOrSet, name, nameIsRecovered);
     indent--;
     return result;
   }
@@ -909,6 +882,7 @@
       Token name,
       Token? lateToken,
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? varFinalOrConst,
       DeclarationKind kind,
@@ -918,6 +892,7 @@
         '$name, '
         '$lateToken, '
         '$abstractToken, '
+        '$augmentToken, '
         '$externalToken, '
         '$varFinalOrConst, '
         '$kind, '
@@ -928,6 +903,7 @@
         name,
         lateToken,
         abstractToken,
+        augmentToken,
         externalToken,
         varFinalOrConst,
         kind,
@@ -2277,6 +2253,7 @@
       Token token,
       Token beforeStart,
       Token? abstractToken,
+      Token? augmentToken,
       Token? externalToken,
       Token? staticToken,
       Token? covariantToken,
@@ -2291,6 +2268,7 @@
         '$token, '
         '$beforeStart, '
         '$abstractToken, '
+        '$augmentToken, '
         '$externalToken, '
         '$staticToken, '
         '$covariantToken, '
@@ -2306,6 +2284,7 @@
         token,
         beforeStart,
         abstractToken,
+        augmentToken,
         externalToken,
         staticToken,
         covariantToken,
diff --git a/pkg/front_end/test/token_test.dart b/pkg/front_end/test/token_test.dart
index 301e6ec..aad4e9f 100644
--- a/pkg/front_end/test/token_test.dart
+++ b/pkg/front_end/test/token_test.dart
@@ -84,6 +84,7 @@
     var builtInKeywords = new Set<Keyword>.from([
       Keyword.ABSTRACT,
       Keyword.AS,
+      Keyword.AUGMENT,
       Keyword.COVARIANT,
       Keyword.DEFERRED,
       Keyword.DYNAMIC,
diff --git a/pkg/front_end/testcases/general/issue48444.dart b/pkg/front_end/testcases/general/issue48444.dart
new file mode 100644
index 0000000..bd33840
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48444.dart
@@ -0,0 +1,15 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+abstract class A {
+  void foo() {}
+}
+
+class B extends A {
+  void bar(bool t) {
+    t ? this.foo() : this.foo();
+  }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/issue48444.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue48444.dart.textual_outline.expect
new file mode 100644
index 0000000..c396c92
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48444.dart.textual_outline.expect
@@ -0,0 +1,9 @@
+abstract class A {
+  void foo() {}
+}
+
+class B extends A {
+  void bar(bool t) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/issue48444.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/issue48444.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..c396c92
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48444.dart.textual_outline_modelled.expect
@@ -0,0 +1,9 @@
+abstract class A {
+  void foo() {}
+}
+
+class B extends A {
+  void bar(bool t) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/issue48444.dart.weak.expect b/pkg/front_end/testcases/general/issue48444.dart.weak.expect
new file mode 100644
index 0000000..c1743d7
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48444.dart.weak.expect
@@ -0,0 +1,19 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  method foo() → void {}
+}
+class B extends self::A {
+  synthetic constructor •() → self::B
+    : super self::A::•()
+    ;
+  method bar(core::bool t) → void {
+    t ?{void} this.{self::A::foo}(){() → void} : this.{self::A::foo}(){() → void};
+  }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/issue48444.dart.weak.modular.expect b/pkg/front_end/testcases/general/issue48444.dart.weak.modular.expect
new file mode 100644
index 0000000..c1743d7
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48444.dart.weak.modular.expect
@@ -0,0 +1,19 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  method foo() → void {}
+}
+class B extends self::A {
+  synthetic constructor •() → self::B
+    : super self::A::•()
+    ;
+  method bar(core::bool t) → void {
+    t ?{void} this.{self::A::foo}(){() → void} : this.{self::A::foo}(){() → void};
+  }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/issue48444.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue48444.dart.weak.outline.expect
new file mode 100644
index 0000000..9bde383
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48444.dart.weak.outline.expect
@@ -0,0 +1,18 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    ;
+  method foo() → void
+    ;
+}
+class B extends self::A {
+  synthetic constructor •() → self::B
+    ;
+  method bar(core::bool t) → void
+    ;
+}
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/general/issue48444.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue48444.dart.weak.transformed.expect
new file mode 100644
index 0000000..c1743d7
--- /dev/null
+++ b/pkg/front_end/testcases/general/issue48444.dart.weak.transformed.expect
@@ -0,0 +1,19 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  method foo() → void {}
+}
+class B extends self::A {
+  synthetic constructor •() → self::B
+    : super self::A::•()
+    ;
+  method bar(core::bool t) → void {
+    t ?{void} this.{self::A::foo}(){() → void} : this.{self::A::foo}(){() → void};
+  }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/macros/augment_class.dart.strong.expect b/pkg/front_end/testcases/macros/augment_class.dart.strong.expect
index 31fac3d..668cf12 100644
--- a/pkg/front_end/testcases/macros/augment_class.dart.strong.expect
+++ b/pkg/front_end/testcases/macros/augment_class.dart.strong.expect
@@ -1,4 +1,74 @@
 library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Error: Expected ';' after this.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:1: Error: Can't have modifier 'abstract' here.
+// Try removing 'abstract'.
+// abstract augment class Class2 {}
+// ^^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: Expected ';' after this.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: 'augment' is already declared in this scope.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Context: Previous declaration of 'augment'.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: Expected ';' after this.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: 'augment' is already declared in this scope.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Context: Previous declaration of 'augment'.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:1: Error: Can't have modifier 'abstract' here.
+// Try removing 'abstract'.
+// abstract augment class Class4 = Super with Mixin;
+// ^^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: Expected ';' after this.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: 'augment' is already declared in this scope.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Context: Previous declaration of 'augment'.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -14,7 +84,7 @@
     : super core::Object::•()
     ;
 }
-abstract class Class2 extends core::Object {
+class Class2 extends core::Object {
   synthetic constructor •() → self::Class2
     : super core::Object::•()
     ;
@@ -24,9 +94,10 @@
     : super self::Super::•()
     ;
 }
-abstract class Class4 = self::Super with self::Mixin {
+class Class4 = self::Super with self::Mixin {
   synthetic constructor •() → self::Class4
     : super self::Super::•()
     ;
 }
+static field dynamic augment;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/macros/augment_class.dart.strong.transformed.expect b/pkg/front_end/testcases/macros/augment_class.dart.strong.transformed.expect
index 1213172..3a1d218 100644
--- a/pkg/front_end/testcases/macros/augment_class.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/macros/augment_class.dart.strong.transformed.expect
@@ -1,4 +1,74 @@
 library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Error: Expected ';' after this.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:1: Error: Can't have modifier 'abstract' here.
+// Try removing 'abstract'.
+// abstract augment class Class2 {}
+// ^^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: Expected ';' after this.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: 'augment' is already declared in this scope.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Context: Previous declaration of 'augment'.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: Expected ';' after this.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: 'augment' is already declared in this scope.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Context: Previous declaration of 'augment'.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:1: Error: Can't have modifier 'abstract' here.
+// Try removing 'abstract'.
+// abstract augment class Class4 = Super with Mixin;
+// ^^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: Expected ';' after this.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: 'augment' is already declared in this scope.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Context: Previous declaration of 'augment'.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -14,7 +84,7 @@
     : super core::Object::•()
     ;
 }
-abstract class Class2 extends core::Object {
+class Class2 extends core::Object {
   synthetic constructor •() → self::Class2
     : super core::Object::•()
     ;
@@ -24,9 +94,10 @@
     : super self::Super::•()
     ;
 }
-abstract class Class4 extends self::Super implements self::Mixin /*isEliminatedMixin*/  {
+class Class4 extends self::Super implements self::Mixin /*isEliminatedMixin*/  {
   synthetic constructor •() → self::Class4
     : super self::Super::•()
     ;
 }
+static field dynamic augment;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/macros/augment_class.dart.textual_outline.expect b/pkg/front_end/testcases/macros/augment_class.dart.textual_outline.expect
index 99323fe..20a8a72 100644
--- a/pkg/front_end/testcases/macros/augment_class.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/macros/augment_class.dart.textual_outline.expect
@@ -1,9 +1,11 @@
 class Super {}
 mixin Mixin {}
-augment
+augment ;
 class Class1 {}
-abstract augment class Class2 {}
-augment
+abstract augment ;
+class Class2 {}
+augment ;
 class Class3 = Super with Mixin;
-abstract augment class Class4 = Super with Mixin;
+abstract augment ;
+class Class4 = Super with Mixin;
 main() {}
diff --git a/pkg/front_end/testcases/macros/augment_class.dart.weak.expect b/pkg/front_end/testcases/macros/augment_class.dart.weak.expect
index 31fac3d..668cf12 100644
--- a/pkg/front_end/testcases/macros/augment_class.dart.weak.expect
+++ b/pkg/front_end/testcases/macros/augment_class.dart.weak.expect
@@ -1,4 +1,74 @@
 library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Error: Expected ';' after this.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:1: Error: Can't have modifier 'abstract' here.
+// Try removing 'abstract'.
+// abstract augment class Class2 {}
+// ^^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: Expected ';' after this.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: 'augment' is already declared in this scope.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Context: Previous declaration of 'augment'.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: Expected ';' after this.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: 'augment' is already declared in this scope.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Context: Previous declaration of 'augment'.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:1: Error: Can't have modifier 'abstract' here.
+// Try removing 'abstract'.
+// abstract augment class Class4 = Super with Mixin;
+// ^^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: Expected ';' after this.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: 'augment' is already declared in this scope.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Context: Previous declaration of 'augment'.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -14,7 +84,7 @@
     : super core::Object::•()
     ;
 }
-abstract class Class2 extends core::Object {
+class Class2 extends core::Object {
   synthetic constructor •() → self::Class2
     : super core::Object::•()
     ;
@@ -24,9 +94,10 @@
     : super self::Super::•()
     ;
 }
-abstract class Class4 = self::Super with self::Mixin {
+class Class4 = self::Super with self::Mixin {
   synthetic constructor •() → self::Class4
     : super self::Super::•()
     ;
 }
+static field dynamic augment;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/macros/augment_class.dart.weak.modular.expect b/pkg/front_end/testcases/macros/augment_class.dart.weak.modular.expect
index 31fac3d..668cf12 100644
--- a/pkg/front_end/testcases/macros/augment_class.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/macros/augment_class.dart.weak.modular.expect
@@ -1,4 +1,74 @@
 library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Error: Expected ';' after this.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:1: Error: Can't have modifier 'abstract' here.
+// Try removing 'abstract'.
+// abstract augment class Class2 {}
+// ^^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: Expected ';' after this.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: 'augment' is already declared in this scope.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Context: Previous declaration of 'augment'.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: Expected ';' after this.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: 'augment' is already declared in this scope.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Context: Previous declaration of 'augment'.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:1: Error: Can't have modifier 'abstract' here.
+// Try removing 'abstract'.
+// abstract augment class Class4 = Super with Mixin;
+// ^^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: Expected ';' after this.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: 'augment' is already declared in this scope.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Context: Previous declaration of 'augment'.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -14,7 +84,7 @@
     : super core::Object::•()
     ;
 }
-abstract class Class2 extends core::Object {
+class Class2 extends core::Object {
   synthetic constructor •() → self::Class2
     : super core::Object::•()
     ;
@@ -24,9 +94,10 @@
     : super self::Super::•()
     ;
 }
-abstract class Class4 = self::Super with self::Mixin {
+class Class4 = self::Super with self::Mixin {
   synthetic constructor •() → self::Class4
     : super self::Super::•()
     ;
 }
+static field dynamic augment;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/macros/augment_class.dart.weak.outline.expect b/pkg/front_end/testcases/macros/augment_class.dart.weak.outline.expect
index 982b26e..63bb31a 100644
--- a/pkg/front_end/testcases/macros/augment_class.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/macros/augment_class.dart.weak.outline.expect
@@ -1,4 +1,74 @@
 library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Error: Expected ';' after this.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:1: Error: Can't have modifier 'abstract' here.
+// Try removing 'abstract'.
+// abstract augment class Class2 {}
+// ^^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: Expected ';' after this.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: 'augment' is already declared in this scope.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Context: Previous declaration of 'augment'.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: Expected ';' after this.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: 'augment' is already declared in this scope.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Context: Previous declaration of 'augment'.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:1: Error: Can't have modifier 'abstract' here.
+// Try removing 'abstract'.
+// abstract augment class Class4 = Super with Mixin;
+// ^^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: Expected ';' after this.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: 'augment' is already declared in this scope.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Context: Previous declaration of 'augment'.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -12,7 +82,7 @@
   synthetic constructor •() → self::Class1
     ;
 }
-abstract class Class2 extends core::Object {
+class Class2 extends core::Object {
   synthetic constructor •() → self::Class2
     ;
 }
@@ -21,10 +91,11 @@
     : super self::Super::•()
     ;
 }
-abstract class Class4 = self::Super with self::Mixin {
+class Class4 = self::Super with self::Mixin {
   synthetic constructor •() → self::Class4
     : super self::Super::•()
     ;
 }
+static field dynamic augment;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/macros/augment_class.dart.weak.transformed.expect b/pkg/front_end/testcases/macros/augment_class.dart.weak.transformed.expect
index 1213172..3a1d218 100644
--- a/pkg/front_end/testcases/macros/augment_class.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/macros/augment_class.dart.weak.transformed.expect
@@ -1,4 +1,74 @@
 library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Error: Expected ';' after this.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:1: Error: Can't have modifier 'abstract' here.
+// Try removing 'abstract'.
+// abstract augment class Class2 {}
+// ^^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: Expected ';' after this.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Error: 'augment' is already declared in this scope.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:8:1: Context: Previous declaration of 'augment'.
+// augment class Class1 {}
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: Expected ';' after this.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Error: 'augment' is already declared in this scope.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:9:10: Context: Previous declaration of 'augment'.
+// abstract augment class Class2 {}
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:1: Error: Can't have modifier 'abstract' here.
+// Try removing 'abstract'.
+// abstract augment class Class4 = Super with Mixin;
+// ^^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: Expected ';' after this.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+//
+// pkg/front_end/testcases/macros/augment_class.dart:11:10: Error: 'augment' is already declared in this scope.
+// abstract augment class Class4 = Super with Mixin;
+//          ^^^^^^^
+// pkg/front_end/testcases/macros/augment_class.dart:10:1: Context: Previous declaration of 'augment'.
+// augment class Class3 = Super with Mixin;
+// ^^^^^^^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -14,7 +84,7 @@
     : super core::Object::•()
     ;
 }
-abstract class Class2 extends core::Object {
+class Class2 extends core::Object {
   synthetic constructor •() → self::Class2
     : super core::Object::•()
     ;
@@ -24,9 +94,10 @@
     : super self::Super::•()
     ;
 }
-abstract class Class4 extends self::Super implements self::Mixin /*isEliminatedMixin*/  {
+class Class4 extends self::Super implements self::Mixin /*isEliminatedMixin*/  {
   synthetic constructor •() → self::Class4
     : super self::Super::•()
     ;
 }
+static field dynamic augment;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/issue47741.dart b/pkg/front_end/testcases/super_parameters/issue47741.dart
new file mode 100644
index 0000000..9ce11a2
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue47741.dart
@@ -0,0 +1,14 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+class A {
+  A(int foo<T>(int a));
+}
+
+class B extends A {
+  B.sub1(double super.bar1<T1>(int a1),);
+  B.sub2(double super.bar2<T2>(int a2),);
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/super_parameters/issue47741.dart.strong.expect b/pkg/front_end/testcases/super_parameters/issue47741.dart.strong.expect
new file mode 100644
index 0000000..d463400
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue47741.dart.strong.expect
@@ -0,0 +1,18 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  constructor •(<T extends core::Object? = dynamic>(core::int) → core::int foo) → self::A
+    : super core::Object::•()
+    ;
+}
+class B extends self::A {
+  constructor sub1(<T1 extends core::Object? = dynamic>(core::int) → core::double bar1) → self::B
+    : super self::A::•(bar1)
+    ;
+  constructor sub2(<T2 extends core::Object? = dynamic>(core::int) → core::double bar2) → self::B
+    : super self::A::•(bar2)
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/issue47741.dart.strong.transformed.expect b/pkg/front_end/testcases/super_parameters/issue47741.dart.strong.transformed.expect
new file mode 100644
index 0000000..d463400
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue47741.dart.strong.transformed.expect
@@ -0,0 +1,18 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  constructor •(<T extends core::Object? = dynamic>(core::int) → core::int foo) → self::A
+    : super core::Object::•()
+    ;
+}
+class B extends self::A {
+  constructor sub1(<T1 extends core::Object? = dynamic>(core::int) → core::double bar1) → self::B
+    : super self::A::•(bar1)
+    ;
+  constructor sub2(<T2 extends core::Object? = dynamic>(core::int) → core::double bar2) → self::B
+    : super self::A::•(bar2)
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/issue47741.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/issue47741.dart.textual_outline.expect
new file mode 100644
index 0000000..d491228
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue47741.dart.textual_outline.expect
@@ -0,0 +1,8 @@
+class A {
+  A(int foo<T>(int a));
+}
+class B extends A {
+  B.sub1(double super.bar1<T1>(int a1),);
+  B.sub2(double super.bar2<T2>(int a2),);
+}
+main() {}
diff --git a/pkg/front_end/testcases/super_parameters/issue47741.dart.weak.expect b/pkg/front_end/testcases/super_parameters/issue47741.dart.weak.expect
new file mode 100644
index 0000000..d463400
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue47741.dart.weak.expect
@@ -0,0 +1,18 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  constructor •(<T extends core::Object? = dynamic>(core::int) → core::int foo) → self::A
+    : super core::Object::•()
+    ;
+}
+class B extends self::A {
+  constructor sub1(<T1 extends core::Object? = dynamic>(core::int) → core::double bar1) → self::B
+    : super self::A::•(bar1)
+    ;
+  constructor sub2(<T2 extends core::Object? = dynamic>(core::int) → core::double bar2) → self::B
+    : super self::A::•(bar2)
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/issue47741.dart.weak.modular.expect b/pkg/front_end/testcases/super_parameters/issue47741.dart.weak.modular.expect
new file mode 100644
index 0000000..d463400
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue47741.dart.weak.modular.expect
@@ -0,0 +1,18 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  constructor •(<T extends core::Object? = dynamic>(core::int) → core::int foo) → self::A
+    : super core::Object::•()
+    ;
+}
+class B extends self::A {
+  constructor sub1(<T1 extends core::Object? = dynamic>(core::int) → core::double bar1) → self::B
+    : super self::A::•(bar1)
+    ;
+  constructor sub2(<T2 extends core::Object? = dynamic>(core::int) → core::double bar2) → self::B
+    : super self::A::•(bar2)
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/issue47741.dart.weak.outline.expect b/pkg/front_end/testcases/super_parameters/issue47741.dart.weak.outline.expect
new file mode 100644
index 0000000..5898b4e
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue47741.dart.weak.outline.expect
@@ -0,0 +1,16 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  constructor •(<T extends core::Object? = dynamic>(core::int) → core::int foo) → self::A
+    ;
+}
+class B extends self::A {
+  constructor sub1(<T1 extends core::Object? = dynamic>(core::int) → core::double bar1) → self::B
+    ;
+  constructor sub2(<T2 extends core::Object? = dynamic>(core::int) → core::double bar2) → self::B
+    ;
+}
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/super_parameters/issue47741.dart.weak.transformed.expect b/pkg/front_end/testcases/super_parameters/issue47741.dart.weak.transformed.expect
new file mode 100644
index 0000000..d463400
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue47741.dart.weak.transformed.expect
@@ -0,0 +1,18 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  constructor •(<T extends core::Object? = dynamic>(core::int) → core::int foo) → self::A
+    : super core::Object::•()
+    ;
+}
+class B extends self::A {
+  constructor sub1(<T1 extends core::Object? = dynamic>(core::int) → core::double bar1) → self::B
+    : super self::A::•(bar1)
+    ;
+  constructor sub2(<T2 extends core::Object? = dynamic>(core::int) → core::double bar2) → self::B
+    : super self::A::•(bar2)
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/issue47951.dart b/pkg/front_end/testcases/super_parameters/issue47951.dart
new file mode 100644
index 0000000..e269698
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue47951.dart
@@ -0,0 +1,14 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+class A {
+  A(num a);
+}
+
+class B extends A {
+  B.sub1(int super.a1);
+  B.sub2(double super.a2);
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/super_parameters/issue47951.dart.strong.expect b/pkg/front_end/testcases/super_parameters/issue47951.dart.strong.expect
new file mode 100644
index 0000000..fe1ace6
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue47951.dart.strong.expect
@@ -0,0 +1,18 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  constructor •(core::num a) → self::A
+    : super core::Object::•()
+    ;
+}
+class B extends self::A {
+  constructor sub1(core::int a1) → self::B
+    : super self::A::•(a1)
+    ;
+  constructor sub2(core::double a2) → self::B
+    : super self::A::•(a2)
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/issue47951.dart.strong.transformed.expect b/pkg/front_end/testcases/super_parameters/issue47951.dart.strong.transformed.expect
new file mode 100644
index 0000000..fe1ace6
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue47951.dart.strong.transformed.expect
@@ -0,0 +1,18 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  constructor •(core::num a) → self::A
+    : super core::Object::•()
+    ;
+}
+class B extends self::A {
+  constructor sub1(core::int a1) → self::B
+    : super self::A::•(a1)
+    ;
+  constructor sub2(core::double a2) → self::B
+    : super self::A::•(a2)
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/issue47951.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/issue47951.dart.textual_outline.expect
new file mode 100644
index 0000000..befb5f9
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue47951.dart.textual_outline.expect
@@ -0,0 +1,8 @@
+class A {
+  A(num a);
+}
+class B extends A {
+  B.sub1(int super.a1);
+  B.sub2(double super.a2);
+}
+main() {}
diff --git a/pkg/front_end/testcases/super_parameters/issue47951.dart.weak.expect b/pkg/front_end/testcases/super_parameters/issue47951.dart.weak.expect
new file mode 100644
index 0000000..fe1ace6
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue47951.dart.weak.expect
@@ -0,0 +1,18 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  constructor •(core::num a) → self::A
+    : super core::Object::•()
+    ;
+}
+class B extends self::A {
+  constructor sub1(core::int a1) → self::B
+    : super self::A::•(a1)
+    ;
+  constructor sub2(core::double a2) → self::B
+    : super self::A::•(a2)
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/issue47951.dart.weak.modular.expect b/pkg/front_end/testcases/super_parameters/issue47951.dart.weak.modular.expect
new file mode 100644
index 0000000..fe1ace6
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue47951.dart.weak.modular.expect
@@ -0,0 +1,18 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  constructor •(core::num a) → self::A
+    : super core::Object::•()
+    ;
+}
+class B extends self::A {
+  constructor sub1(core::int a1) → self::B
+    : super self::A::•(a1)
+    ;
+  constructor sub2(core::double a2) → self::B
+    : super self::A::•(a2)
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/issue47951.dart.weak.outline.expect b/pkg/front_end/testcases/super_parameters/issue47951.dart.weak.outline.expect
new file mode 100644
index 0000000..d6d4b91
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue47951.dart.weak.outline.expect
@@ -0,0 +1,16 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  constructor •(core::num a) → self::A
+    ;
+}
+class B extends self::A {
+  constructor sub1(core::int a1) → self::B
+    ;
+  constructor sub2(core::double a2) → self::B
+    ;
+}
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/super_parameters/issue47951.dart.weak.transformed.expect b/pkg/front_end/testcases/super_parameters/issue47951.dart.weak.transformed.expect
new file mode 100644
index 0000000..fe1ace6
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue47951.dart.weak.transformed.expect
@@ -0,0 +1,18 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  constructor •(core::num a) → self::A
+    : super core::Object::•()
+    ;
+}
+class B extends self::A {
+  constructor sub1(core::int a1) → self::B
+    : super self::A::•(a1)
+    ;
+  constructor sub2(core::double a2) → self::B
+    : super self::A::•(a2)
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/issue48444_2.dart b/pkg/front_end/testcases/super_parameters/issue48444_2.dart
new file mode 100644
index 0000000..7ad7be8
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue48444_2.dart
@@ -0,0 +1,15 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+abstract class A {
+  void foo() {}
+}
+
+class B extends A {
+  void bar(bool t) {
+    t ? super.foo() : super.foo();
+  }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/super_parameters/issue48444_2.dart.strong.expect b/pkg/front_end/testcases/super_parameters/issue48444_2.dart.strong.expect
new file mode 100644
index 0000000..56eb224b
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue48444_2.dart.strong.expect
@@ -0,0 +1,19 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  method foo() → void {}
+}
+class B extends self::A {
+  synthetic constructor •() → self::B
+    : super self::A::•()
+    ;
+  method bar(core::bool t) → void {
+    t ?{void} super.{self::A::foo}() : super.{self::A::foo}();
+  }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/issue48444_2.dart.strong.transformed.expect b/pkg/front_end/testcases/super_parameters/issue48444_2.dart.strong.transformed.expect
new file mode 100644
index 0000000..56eb224b
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue48444_2.dart.strong.transformed.expect
@@ -0,0 +1,19 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  method foo() → void {}
+}
+class B extends self::A {
+  synthetic constructor •() → self::B
+    : super self::A::•()
+    ;
+  method bar(core::bool t) → void {
+    t ?{void} super.{self::A::foo}() : super.{self::A::foo}();
+  }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/issue48444_2.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/issue48444_2.dart.textual_outline.expect
new file mode 100644
index 0000000..c396c92
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue48444_2.dart.textual_outline.expect
@@ -0,0 +1,9 @@
+abstract class A {
+  void foo() {}
+}
+
+class B extends A {
+  void bar(bool t) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/super_parameters/issue48444_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/super_parameters/issue48444_2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..c396c92
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue48444_2.dart.textual_outline_modelled.expect
@@ -0,0 +1,9 @@
+abstract class A {
+  void foo() {}
+}
+
+class B extends A {
+  void bar(bool t) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/super_parameters/issue48444_2.dart.weak.expect b/pkg/front_end/testcases/super_parameters/issue48444_2.dart.weak.expect
new file mode 100644
index 0000000..56eb224b
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue48444_2.dart.weak.expect
@@ -0,0 +1,19 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  method foo() → void {}
+}
+class B extends self::A {
+  synthetic constructor •() → self::B
+    : super self::A::•()
+    ;
+  method bar(core::bool t) → void {
+    t ?{void} super.{self::A::foo}() : super.{self::A::foo}();
+  }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/issue48444_2.dart.weak.modular.expect b/pkg/front_end/testcases/super_parameters/issue48444_2.dart.weak.modular.expect
new file mode 100644
index 0000000..56eb224b
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue48444_2.dart.weak.modular.expect
@@ -0,0 +1,19 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  method foo() → void {}
+}
+class B extends self::A {
+  synthetic constructor •() → self::B
+    : super self::A::•()
+    ;
+  method bar(core::bool t) → void {
+    t ?{void} super.{self::A::foo}() : super.{self::A::foo}();
+  }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/issue48444_2.dart.weak.outline.expect b/pkg/front_end/testcases/super_parameters/issue48444_2.dart.weak.outline.expect
new file mode 100644
index 0000000..9bde383
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue48444_2.dart.weak.outline.expect
@@ -0,0 +1,18 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    ;
+  method foo() → void
+    ;
+}
+class B extends self::A {
+  synthetic constructor •() → self::B
+    ;
+  method bar(core::bool t) → void
+    ;
+}
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/super_parameters/issue48444_2.dart.weak.transformed.expect b/pkg/front_end/testcases/super_parameters/issue48444_2.dart.weak.transformed.expect
new file mode 100644
index 0000000..56eb224b
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/issue48444_2.dart.weak.transformed.expect
@@ -0,0 +1,19 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  method foo() → void {}
+}
+class B extends self::A {
+  synthetic constructor •() → self::B
+    : super self::A::•()
+    ;
+  method bar(core::bool t) → void {
+    t ?{void} super.{self::A::foo}() : super.{self::A::foo}();
+  }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart
new file mode 100644
index 0000000..45cf2b3
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart
@@ -0,0 +1,50 @@
+// Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+class A1 {
+  final int foo;
+  A1(int this.foo);
+}
+
+class B1 extends A1 {
+  B1(int super.foo);
+}
+
+class A2 {
+  final int Function(int) foo;
+  A2(int Function(int) this.foo);
+}
+
+class B2 extends A2 {
+  B2(int Function(int) super.foo);
+}
+
+class A3 {
+  final int Function(int) foo;
+  A3(int this.foo(int));
+}
+
+class B3 extends A3 {
+  B3(int super.foo(int));
+}
+
+class A4 {
+  final void Function() Function(void Function()) foo;
+  A4(void Function() this.foo(void Function()));
+}
+
+class B4 extends A4 {
+  B4(void Function() super.foo(void Function()));
+}
+
+class A5 {
+  final void Function() Function(void Function()) foo;
+  A5(void Function() Function(void Function()) this.foo);
+}
+
+class B5 extends A5 {
+  B5(void Function() Function(void Function()) super.foo);
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.strong.expect b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.strong.expect
new file mode 100644
index 0000000..c0f8611
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.strong.expect
@@ -0,0 +1,60 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A1 extends core::Object {
+  final field core::int foo;
+  constructor •(core::int foo) → self::A1
+    : self::A1::foo = foo, super core::Object::•()
+    ;
+}
+class B1 extends self::A1 {
+  constructor •(core::int foo) → self::B1
+    : super self::A1::•(foo)
+    ;
+}
+class A2 extends core::Object {
+  final field (core::int) → core::int foo;
+  constructor •((core::int) → core::int foo) → self::A2
+    : self::A2::foo = foo, super core::Object::•()
+    ;
+}
+class B2 extends self::A2 {
+  constructor •((core::int) → core::int foo) → self::B2
+    : super self::A2::•(foo)
+    ;
+}
+class A3 extends core::Object {
+  final field (core::int) → core::int foo;
+  constructor •((dynamic) → core::int foo) → self::A3
+    : self::A3::foo = foo, super core::Object::•()
+    ;
+}
+class B3 extends self::A3 {
+  constructor •((dynamic) → core::int foo) → self::B3
+    : super self::A3::•(foo)
+    ;
+}
+class A4 extends core::Object {
+  final field (() → void) → () → void foo;
+  constructor •((() → void) → () → void foo) → self::A4
+    : self::A4::foo = foo, super core::Object::•()
+    ;
+}
+class B4 extends self::A4 {
+  constructor •((() → void) → () → void foo) → self::B4
+    : super self::A4::•(foo)
+    ;
+}
+class A5 extends core::Object {
+  final field (() → void) → () → void foo;
+  constructor •((() → void) → () → void foo) → self::A5
+    : self::A5::foo = foo, super core::Object::•()
+    ;
+}
+class B5 extends self::A5 {
+  constructor •((() → void) → () → void foo) → self::B5
+    : super self::A5::•(foo)
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.strong.transformed.expect b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.strong.transformed.expect
new file mode 100644
index 0000000..c0f8611
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.strong.transformed.expect
@@ -0,0 +1,60 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A1 extends core::Object {
+  final field core::int foo;
+  constructor •(core::int foo) → self::A1
+    : self::A1::foo = foo, super core::Object::•()
+    ;
+}
+class B1 extends self::A1 {
+  constructor •(core::int foo) → self::B1
+    : super self::A1::•(foo)
+    ;
+}
+class A2 extends core::Object {
+  final field (core::int) → core::int foo;
+  constructor •((core::int) → core::int foo) → self::A2
+    : self::A2::foo = foo, super core::Object::•()
+    ;
+}
+class B2 extends self::A2 {
+  constructor •((core::int) → core::int foo) → self::B2
+    : super self::A2::•(foo)
+    ;
+}
+class A3 extends core::Object {
+  final field (core::int) → core::int foo;
+  constructor •((dynamic) → core::int foo) → self::A3
+    : self::A3::foo = foo, super core::Object::•()
+    ;
+}
+class B3 extends self::A3 {
+  constructor •((dynamic) → core::int foo) → self::B3
+    : super self::A3::•(foo)
+    ;
+}
+class A4 extends core::Object {
+  final field (() → void) → () → void foo;
+  constructor •((() → void) → () → void foo) → self::A4
+    : self::A4::foo = foo, super core::Object::•()
+    ;
+}
+class B4 extends self::A4 {
+  constructor •((() → void) → () → void foo) → self::B4
+    : super self::A4::•(foo)
+    ;
+}
+class A5 extends core::Object {
+  final field (() → void) → () → void foo;
+  constructor •((() → void) → () → void foo) → self::A5
+    : self::A5::foo = foo, super core::Object::•()
+    ;
+}
+class B5 extends self::A5 {
+  constructor •((() → void) → () → void foo) → self::B5
+    : super self::A5::•(foo)
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.textual_outline.expect
new file mode 100644
index 0000000..f29b981
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.textual_outline.expect
@@ -0,0 +1,36 @@
+class A1 {
+  final int foo;
+  A1(int this.foo);
+}
+class B1 extends A1 {
+  B1(int super.foo);
+}
+class A2 {
+  final int Function(int) foo;
+  A2(int Function(int) this.foo);
+}
+class B2 extends A2 {
+  B2(int Function(int) super.foo);
+}
+class A3 {
+  final int Function(int) foo;
+  A3(int this.foo(int));
+}
+class B3 extends A3 {
+  B3(int super.foo(int));
+}
+class A4 {
+  final void Function() Function(void Function()) foo;
+  A4(void Function() this.foo(void Function()));
+}
+class B4 extends A4 {
+  B4(void Function() super.foo(void Function()));
+}
+class A5 {
+  final void Function() Function(void Function()) foo;
+  A5(void Function() Function(void Function()) this.foo);
+}
+class B5 extends A5 {
+  B5(void Function() Function(void Function()) super.foo);
+}
+main() {}
diff --git a/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.weak.expect b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.weak.expect
new file mode 100644
index 0000000..c0f8611
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.weak.expect
@@ -0,0 +1,60 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A1 extends core::Object {
+  final field core::int foo;
+  constructor •(core::int foo) → self::A1
+    : self::A1::foo = foo, super core::Object::•()
+    ;
+}
+class B1 extends self::A1 {
+  constructor •(core::int foo) → self::B1
+    : super self::A1::•(foo)
+    ;
+}
+class A2 extends core::Object {
+  final field (core::int) → core::int foo;
+  constructor •((core::int) → core::int foo) → self::A2
+    : self::A2::foo = foo, super core::Object::•()
+    ;
+}
+class B2 extends self::A2 {
+  constructor •((core::int) → core::int foo) → self::B2
+    : super self::A2::•(foo)
+    ;
+}
+class A3 extends core::Object {
+  final field (core::int) → core::int foo;
+  constructor •((dynamic) → core::int foo) → self::A3
+    : self::A3::foo = foo, super core::Object::•()
+    ;
+}
+class B3 extends self::A3 {
+  constructor •((dynamic) → core::int foo) → self::B3
+    : super self::A3::•(foo)
+    ;
+}
+class A4 extends core::Object {
+  final field (() → void) → () → void foo;
+  constructor •((() → void) → () → void foo) → self::A4
+    : self::A4::foo = foo, super core::Object::•()
+    ;
+}
+class B4 extends self::A4 {
+  constructor •((() → void) → () → void foo) → self::B4
+    : super self::A4::•(foo)
+    ;
+}
+class A5 extends core::Object {
+  final field (() → void) → () → void foo;
+  constructor •((() → void) → () → void foo) → self::A5
+    : self::A5::foo = foo, super core::Object::•()
+    ;
+}
+class B5 extends self::A5 {
+  constructor •((() → void) → () → void foo) → self::B5
+    : super self::A5::•(foo)
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.weak.modular.expect b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.weak.modular.expect
new file mode 100644
index 0000000..c0f8611
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.weak.modular.expect
@@ -0,0 +1,60 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A1 extends core::Object {
+  final field core::int foo;
+  constructor •(core::int foo) → self::A1
+    : self::A1::foo = foo, super core::Object::•()
+    ;
+}
+class B1 extends self::A1 {
+  constructor •(core::int foo) → self::B1
+    : super self::A1::•(foo)
+    ;
+}
+class A2 extends core::Object {
+  final field (core::int) → core::int foo;
+  constructor •((core::int) → core::int foo) → self::A2
+    : self::A2::foo = foo, super core::Object::•()
+    ;
+}
+class B2 extends self::A2 {
+  constructor •((core::int) → core::int foo) → self::B2
+    : super self::A2::•(foo)
+    ;
+}
+class A3 extends core::Object {
+  final field (core::int) → core::int foo;
+  constructor •((dynamic) → core::int foo) → self::A3
+    : self::A3::foo = foo, super core::Object::•()
+    ;
+}
+class B3 extends self::A3 {
+  constructor •((dynamic) → core::int foo) → self::B3
+    : super self::A3::•(foo)
+    ;
+}
+class A4 extends core::Object {
+  final field (() → void) → () → void foo;
+  constructor •((() → void) → () → void foo) → self::A4
+    : self::A4::foo = foo, super core::Object::•()
+    ;
+}
+class B4 extends self::A4 {
+  constructor •((() → void) → () → void foo) → self::B4
+    : super self::A4::•(foo)
+    ;
+}
+class A5 extends core::Object {
+  final field (() → void) → () → void foo;
+  constructor •((() → void) → () → void foo) → self::A5
+    : self::A5::foo = foo, super core::Object::•()
+    ;
+}
+class B5 extends self::A5 {
+  constructor •((() → void) → () → void foo) → self::B5
+    : super self::A5::•(foo)
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.weak.outline.expect b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.weak.outline.expect
new file mode 100644
index 0000000..70b9d6e
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.weak.outline.expect
@@ -0,0 +1,51 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A1 extends core::Object {
+  final field core::int foo;
+  constructor •(core::int foo) → self::A1
+    ;
+}
+class B1 extends self::A1 {
+  constructor •(core::int foo) → self::B1
+    ;
+}
+class A2 extends core::Object {
+  final field (core::int) → core::int foo;
+  constructor •((core::int) → core::int foo) → self::A2
+    ;
+}
+class B2 extends self::A2 {
+  constructor •((core::int) → core::int foo) → self::B2
+    ;
+}
+class A3 extends core::Object {
+  final field (core::int) → core::int foo;
+  constructor •((dynamic) → core::int foo) → self::A3
+    ;
+}
+class B3 extends self::A3 {
+  constructor •((dynamic) → core::int foo) → self::B3
+    ;
+}
+class A4 extends core::Object {
+  final field (() → void) → () → void foo;
+  constructor •((() → void) → () → void foo) → self::A4
+    ;
+}
+class B4 extends self::A4 {
+  constructor •((() → void) → () → void foo) → self::B4
+    ;
+}
+class A5 extends core::Object {
+  final field (() → void) → () → void foo;
+  constructor •((() → void) → () → void foo) → self::A5
+    ;
+}
+class B5 extends self::A5 {
+  constructor •((() → void) → () → void foo) → self::B5
+    ;
+}
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.weak.transformed.expect b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.weak.transformed.expect
new file mode 100644
index 0000000..c0f8611
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/typed_super_parameters.dart.weak.transformed.expect
@@ -0,0 +1,60 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A1 extends core::Object {
+  final field core::int foo;
+  constructor •(core::int foo) → self::A1
+    : self::A1::foo = foo, super core::Object::•()
+    ;
+}
+class B1 extends self::A1 {
+  constructor •(core::int foo) → self::B1
+    : super self::A1::•(foo)
+    ;
+}
+class A2 extends core::Object {
+  final field (core::int) → core::int foo;
+  constructor •((core::int) → core::int foo) → self::A2
+    : self::A2::foo = foo, super core::Object::•()
+    ;
+}
+class B2 extends self::A2 {
+  constructor •((core::int) → core::int foo) → self::B2
+    : super self::A2::•(foo)
+    ;
+}
+class A3 extends core::Object {
+  final field (core::int) → core::int foo;
+  constructor •((dynamic) → core::int foo) → self::A3
+    : self::A3::foo = foo, super core::Object::•()
+    ;
+}
+class B3 extends self::A3 {
+  constructor •((dynamic) → core::int foo) → self::B3
+    : super self::A3::•(foo)
+    ;
+}
+class A4 extends core::Object {
+  final field (() → void) → () → void foo;
+  constructor •((() → void) → () → void foo) → self::A4
+    : self::A4::foo = foo, super core::Object::•()
+    ;
+}
+class B4 extends self::A4 {
+  constructor •((() → void) → () → void foo) → self::B4
+    : super self::A4::•(foo)
+    ;
+}
+class A5 extends core::Object {
+  final field (() → void) → () → void foo;
+  constructor •((() → void) → () → void foo) → self::A5
+    : self::A5::foo = foo, super core::Object::•()
+    ;
+}
+class B5 extends self::A5 {
+  constructor •((() → void) → () → void foo) → self::B5
+    : super self::A5::•(foo)
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/textual_outline.status b/pkg/front_end/testcases/textual_outline.status
index 248e387..afa3f8a 100644
--- a/pkg/front_end/testcases/textual_outline.status
+++ b/pkg/front_end/testcases/textual_outline.status
@@ -225,7 +225,9 @@
 regress/issue_41265.crash: FormatterCrash
 super_parameters/circular_dependency_inference: FormatterCrash
 super_parameters/default_values: FormatterCrash
+super_parameters/issue47741: FormatterCrash
 super_parameters/issue47922: FormatterCrash
+super_parameters/issue47951: FormatterCrash
 super_parameters/issue48142: FormatterCrash
 super_parameters/issue48286: FormatterCrash
 super_parameters/simple: FormatterCrash
@@ -236,6 +238,7 @@
 super_parameters/synthesized_super_constructor_with_parameters: FormatterCrash
 super_parameters/type_alias_in_supertype: FormatterCrash
 super_parameters/typed_super_parameter: FormatterCrash
+super_parameters/typed_super_parameters: FormatterCrash
 triple_shift/invalid_operator: FormatterCrash
 variance/class_type_parameter_modifier: FormatterCrash
 variance/generic_covariance_sound_variance: FormatterCrash
diff --git a/pkg/nnbd_migration/test/api_test.dart b/pkg/nnbd_migration/test/api_test.dart
index de6b5bb..c567c61 100644
--- a/pkg/nnbd_migration/test/api_test.dart
+++ b/pkg/nnbd_migration/test/api_test.dart
@@ -1162,7 +1162,6 @@
     });
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/47848')
   Future<void> test_call_tearoff_futureOr() async {
     var content = '''
 import 'dart:async';
@@ -1233,7 +1232,6 @@
     await _checkSingleFileChanges(content, expected);
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/47848')
   Future<void> test_call_tearoff_raw_function() async {
     var content = '''
 class C {
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/dynamic_list_access.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/dynamic_list_access.dart.expect
index 5fa7916..b2f616f 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/dynamic_list_access.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/dynamic_list_access.dart.expect
@@ -4,5 +4,5 @@
 
 static method main() → dynamic {
   dynamic x = [@vm.inferred-type.metadata=dart.core::_List<dart.core::int?>] core::_List::•<core::int?>(10);
-  [@vm.direct-call.metadata=dart.core::_IntegerImplementation.+??] [@vm.direct-call.metadata=dart.core::_List.[]] [@vm.inferred-type.metadata=int? (receiver not int)] x{dynamic}.[](0){dynamic}.+(10);
+  [@vm.direct-call.metadata=dart.core::_IntegerImplementation.+??] [@vm.direct-call.metadata=dart.core::_Array.[]] [@vm.inferred-type.metadata=int? (receiver not int)] x{dynamic}.[](0){dynamic}.+(10);
 }
diff --git a/runtime/BUILD.gn b/runtime/BUILD.gn
index a4c477a..12d3dfb 100644
--- a/runtime/BUILD.gn
+++ b/runtime/BUILD.gn
@@ -242,6 +242,7 @@
 source_set("dart_api") {
   public_configs = [ ":dart_public_config" ]
   sources = [
+    "include/analyze_snapshot_api.h",
     "include/dart_api.h",
     "include/dart_api_dl.c",
     "include/dart_api_dl.h",
@@ -289,9 +290,11 @@
   public_configs = [ ":dart_public_config" ]
   sources = [
     "$target_gen_dir/version.cc",
+    "include/analyze_snapshot_api.h",
     "include/dart_api.h",
     "include/dart_native_api.h",
     "include/dart_tools_api.h",
+    "vm/analyze_snapshot_api_impl.cc",
     "vm/dart_api_impl.cc",
     "vm/native_api_impl.cc",
     "vm/version.h",
diff --git a/runtime/bin/BUILD.gn b/runtime/bin/BUILD.gn
index ea7d40d..04e73a2 100644
--- a/runtime/bin/BUILD.gn
+++ b/runtime/bin/BUILD.gn
@@ -880,6 +880,45 @@
   extra_deps += [ ":elf_loader_product" ]
 }
 
+dart_executable("analyze_snapshot") {
+  extra_configs = [ "..:dart_precompiled_runtime_config" ]
+  extra_deps = [
+    "..:libdart_precompiled_runtime",
+    "../platform:libdart_platform_precompiled_runtime",
+  ]
+
+  extra_sources = [
+    "analyze_snapshot.cc",
+    "builtin.cc",
+    "loader.cc",
+    "loader.h",
+  ]
+
+  if (dart_runtime_mode == "release") {
+    extra_deps += [ ":elf_loader_product" ]
+  } else {
+    extra_deps += [ ":elf_loader" ]
+  }
+}
+
+dart_executable("analyze_snapshot_product") {
+  use_product_mode = true
+  extra_configs = [ "..:dart_precompiled_runtime_config" ]
+  extra_deps = [
+    "..:libdart_precompiled_runtime_product",
+    "../platform:libdart_platform_precompiled_runtime_product",
+  ]
+
+  extra_sources = [
+    "analyze_snapshot.cc",
+    "builtin.cc",
+    "loader.cc",
+    "loader.h",
+  ]
+
+  extra_deps += [ ":elf_loader_product" ]
+}
+
 executable("process_test") {
   sources = [ "process_test.cc" ]
 }
diff --git a/runtime/bin/analyze_snapshot.cc b/runtime/bin/analyze_snapshot.cc
new file mode 100644
index 0000000..85d4429
--- /dev/null
+++ b/runtime/bin/analyze_snapshot.cc
@@ -0,0 +1,258 @@
+// Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#include "bin/elf_loader.h"
+#include "bin/error_exit.h"
+#include "bin/file.h"
+
+#include "bin/options.h"
+#include "bin/platform.h"
+
+#if !defined(DART_HOST_OS_FUCHSIA)
+#include "include/analyze_snapshot_api.h"
+#endif
+
+namespace dart {
+namespace bin {
+#if !defined(DART_HOST_OS_FUCHSIA)
+
+#define STRING_OPTIONS_LIST(V) V(out, out_path)
+
+#define BOOL_OPTIONS_LIST(V)                                                   \
+  V(help, help)                                                                \
+  V(version, version)
+
+#define STRING_OPTION_DEFINITION(flag, variable)                               \
+  static const char* variable = nullptr;                                       \
+  DEFINE_STRING_OPTION(flag, variable)
+STRING_OPTIONS_LIST(STRING_OPTION_DEFINITION)
+#undef STRING_OPTION_DEFINITION
+
+#define BOOL_OPTION_DEFINITION(flag, variable)                                 \
+  static bool variable = false;                                                \
+  DEFINE_BOOL_OPTION(flag, variable)
+BOOL_OPTIONS_LIST(BOOL_OPTION_DEFINITION)
+#undef BOOL_OPTION_DEFINITION
+
+// clang-format off
+static void PrintUsage() {
+  Syslog::PrintErr(
+"Usage: analyze_snapshot [<vm-flags>] [<options>] <snapshot_data>            \n"
+"                                                                            \n"
+"Common options:                                                             \n"
+"--help                                                                      \n"
+"  Display this message.                                                     \n"
+"--version                                                                   \n"
+"  Print the SDK version.                                                    \n"
+"--out                                                                       \n"
+"  Path to generate the analysis results JSON.                               \n"
+"                                                                            \n"
+"If omitting [<vm-flags>] the VM parsing the snapshot is created with the    \n"
+"following default flags:                                                    \n"
+"--enable_mirrors=false                                                      \n"
+"--background_compilation                                                    \n"
+"--lazy_async_stacks                                                         \n"
+"--precompilation                                                            \n"
+"                                                                            \n"
+"\n");
+}
+// clang-format on
+
+const uint8_t* vm_snapshot_data = nullptr;
+const uint8_t* vm_snapshot_instructions = nullptr;
+const uint8_t* vm_isolate_data = nullptr;
+const uint8_t* vm_isolate_instructions = nullptr;
+
+// Parse out the command line arguments. Returns -1 if the arguments
+// are incorrect, 0 otherwise.
+static int ParseArguments(int argc,
+                          char** argv,
+                          CommandLineOptions* vm_options,
+                          CommandLineOptions* inputs) {
+  // Skip the binary name.
+  int i = 1;
+
+  // Parse out the vm options.
+  while ((i < argc) && OptionProcessor::IsValidShortFlag(argv[i])) {
+    if (OptionProcessor::TryProcess(argv[i], vm_options)) {
+      i += 1;
+      continue;
+    }
+    vm_options->AddArgument(argv[i]);
+    i += 1;
+  }
+
+  // Parse out the kernel inputs.
+  while (i < argc) {
+    inputs->AddArgument(argv[i]);
+    i++;
+  }
+
+  if (help) {
+    PrintUsage();
+    Platform::Exit(0);
+  } else if (version) {
+    Syslog::PrintErr("Dart SDK version: %s\n", Dart_VersionString());
+    Platform::Exit(0);
+  }
+
+  // Verify consistency of arguments.
+  if (inputs->count() < 1) {
+    Syslog::PrintErr("At least one input is required\n");
+    return -1;
+  }
+
+  if (out_path == nullptr) {
+    Syslog::PrintErr(
+        "Please specify an output path for analysis with the --out flag.\n\n");
+    return -1;
+  }
+
+  return 0;
+}
+
+PRINTF_ATTRIBUTE(1, 2) static void PrintErrAndExit(const char* format, ...) {
+  va_list args;
+  va_start(args, format);
+  Syslog::VPrintErr(format, args);
+  va_end(args);
+
+  Dart_ExitScope();
+  Dart_ShutdownIsolate();
+  exit(kErrorExitCode);
+}
+
+static File* OpenFile(const char* filename) {
+  File* file = File::Open(nullptr, filename, File::kWriteTruncate);
+  if (file == nullptr) {
+    PrintErrAndExit("Error: Unable to write file: %s\n\n", filename);
+  }
+  return file;
+}
+
+static void WriteFile(const char* filename,
+                      const char* buffer,
+                      const intptr_t size) {
+  File* file = OpenFile(filename);
+  RefCntReleaseScope<File> rs(file);
+  if (!file->WriteFully(buffer, size)) {
+    PrintErrAndExit("Error: Unable to write file: %s\n\n", filename);
+  }
+}
+
+int RunAnalyzer(int argc, char** argv) {
+  // Constant mirrors gen_snapshot binary, subject to change.
+  const int EXTRA_VM_ARGUMENTS = 7;
+  CommandLineOptions vm_options(argc + EXTRA_VM_ARGUMENTS);
+  CommandLineOptions inputs(argc);
+  // Parse command line arguments.
+  if (ParseArguments(argc, argv, &vm_options, &inputs) < 0) {
+    PrintUsage();
+    return kErrorExitCode;
+  }
+
+  // Initialize VM with default flags if none are provided.
+  // TODO(#47924): Implement auto-parsing of flags from the snapshot file.
+  if (vm_options.count() == 0) {
+    vm_options.AddArgument("--enable_mirrors=false");
+    vm_options.AddArgument("--background_compilation");
+    vm_options.AddArgument("--lazy_async_stacks");
+    vm_options.AddArgument("--precompilation");
+  }
+
+  char* error = Dart_SetVMFlags(vm_options.count(), vm_options.arguments());
+  if (error != nullptr) {
+    Syslog::PrintErr("Setting VM flags failed: %s\n", error);
+    free(error);
+    return kErrorExitCode;
+  }
+
+  // Dart_LoadELF will crash on nonexistant file non-gracefully
+  // even though it should return `nullptr`.
+  File* const file =
+      File::Open(/*namespc=*/nullptr, inputs.GetArgument(0), File::kRead);
+  if (file == nullptr) {
+    Syslog::PrintErr("Snapshot file does not exist\n");
+    return kErrorExitCode;
+  }
+  file->Release();
+
+  const char* loader_error = nullptr;
+  Dart_LoadedElf* loaded_elf = Dart_LoadELF(
+      inputs.GetArgument(0), 0, &loader_error, &vm_snapshot_data,
+      &vm_snapshot_instructions, &vm_isolate_data, &vm_isolate_instructions);
+
+  if (loaded_elf == nullptr) {
+    Syslog::PrintErr("Failure calling Dart_LoadELF:\n%s\n", loader_error);
+    return kErrorExitCode;
+  }
+
+  // Begin initialization
+  Dart_InitializeParams init_params = {};
+  memset(&init_params, 0, sizeof(init_params));
+  init_params.version = DART_INITIALIZE_PARAMS_CURRENT_VERSION;
+  init_params.vm_snapshot_data = vm_snapshot_data;
+  init_params.vm_snapshot_instructions = vm_snapshot_instructions;
+
+  init_params.file_open = DartUtils::OpenFile;
+  init_params.file_read = DartUtils::ReadFile;
+  init_params.file_write = DartUtils::WriteFile;
+  init_params.file_close = DartUtils::CloseFile;
+  init_params.entropy_source = DartUtils::EntropySource;
+
+  error = Dart_Initialize(&init_params);
+  if (error != nullptr) {
+    Syslog::PrintErr("VM initialization failed: %s\n", error);
+    free(error);
+    return kErrorExitCode;
+  }
+
+  auto isolate_group_data = std::unique_ptr<IsolateGroupData>(
+      new IsolateGroupData(nullptr, nullptr, nullptr, false));
+
+  Dart_IsolateFlags isolate_flags;
+  Dart_IsolateFlagsInitialize(&isolate_flags);
+  // Null safety can be determined from the snapshot itself
+  isolate_flags.null_safety =
+      Dart_DetectNullSafety(nullptr, nullptr, nullptr, vm_snapshot_data,
+                            vm_snapshot_instructions, nullptr, -1);
+
+  Dart_CreateIsolateGroup(nullptr, nullptr, vm_isolate_data,
+                          vm_isolate_instructions, &isolate_flags,
+                          isolate_group_data.get(),
+                          /*isolate_data=*/nullptr, &error);
+
+  if (error != nullptr) {
+    Syslog::PrintErr("Dart_CreateIsolateGroup Error: %s\n", error);
+    free(error);
+    return kErrorExitCode;
+  }
+
+  dart::snapshot_analyzer::Dart_SnapshotAnalyzerInformation info = {
+      vm_snapshot_data, vm_snapshot_instructions, vm_isolate_data,
+      vm_isolate_instructions};
+
+  char* out = NULL;
+  intptr_t out_len = 0;
+
+  Dart_EnterScope();
+  Dart_DumpSnapshotInformationAsJson(&out, &out_len, &info);
+  WriteFile(out_path, out, out_len);
+  // Since ownership of the JSON buffer is ours, free before we exit.
+  free(out);
+  Dart_ExitScope();
+  Dart_ShutdownIsolate();
+  return 0;
+}
+#endif
+}  // namespace bin
+}  // namespace dart
+
+int main(int argc, char** argv) {
+#if !defined(DART_HOST_OS_FUCHSIA)
+  return dart::bin::RunAnalyzer(argc, argv);
+#endif
+  dart::Syslog::PrintErr("Cannot run on Fuchsia.\n");
+  return dart::bin::kErrorExitCode;
+}
diff --git a/runtime/bin/dfe.cc b/runtime/bin/dfe.cc
index b29c8c1..e274351 100644
--- a/runtime/bin/dfe.cc
+++ b/runtime/bin/dfe.cc
@@ -9,6 +9,7 @@
 #include "bin/error_exit.h"
 #include "bin/exe_utils.h"
 #include "bin/file.h"
+#include "bin/lockers.h"
 #include "bin/platform.h"
 #include "bin/utils.h"
 #include "include/dart_tools_api.h"
@@ -65,8 +66,9 @@
       use_incremental_compiler_(false),
       frontend_filename_(nullptr),
       application_kernel_buffer_(nullptr),
-      application_kernel_buffer_size_(0) {
-}
+      application_kernel_buffer_size_(0),
+      kernel_blobs_(&SimpleHashMap::SameStringValue, 4),
+      kernel_blobs_lock_() {}
 
 DFE::~DFE() {
   if (frontend_filename_ != nullptr) {
@@ -77,6 +79,9 @@
   free(application_kernel_buffer_);
   application_kernel_buffer_ = nullptr;
   application_kernel_buffer_size_ = 0;
+
+  kernel_blobs_.Clear(
+      [](void* value) { delete reinterpret_cast<KernelBlob*>(value); });
 }
 
 void DFE::Init() {
@@ -247,14 +252,19 @@
 void DFE::ReadScript(const char* script_uri,
                      uint8_t** kernel_buffer,
                      intptr_t* kernel_buffer_size,
-                     bool decode_uri) const {
+                     bool decode_uri,
+                     std::shared_ptr<uint8_t>* kernel_blob_ptr) {
   int64_t start = Dart_TimelineGetMicros();
   if (!TryReadKernelFile(script_uri, kernel_buffer, kernel_buffer_size,
-                         decode_uri)) {
+                         decode_uri, kernel_blob_ptr)) {
     return;
   }
   if (!Dart_IsKernel(*kernel_buffer, *kernel_buffer_size)) {
-    free(*kernel_buffer);
+    if (kernel_blob_ptr != nullptr && *kernel_blob_ptr) {
+      *kernel_blob_ptr = nullptr;
+    } else {
+      free(*kernel_buffer);
+    }
     *kernel_buffer = nullptr;
     *kernel_buffer_size = -1;
   }
@@ -438,10 +448,21 @@
 bool DFE::TryReadKernelFile(const char* script_uri,
                             uint8_t** kernel_ir,
                             intptr_t* kernel_ir_size,
-                            bool decode_uri) {
+                            bool decode_uri,
+                            std::shared_ptr<uint8_t>* kernel_blob_ptr) {
   *kernel_ir = nullptr;
   *kernel_ir_size = -1;
 
+  if (decode_uri && kernel_blob_ptr != nullptr) {
+    *kernel_blob_ptr = TryFindKernelBlob(script_uri, kernel_ir_size);
+    if (*kernel_blob_ptr) {
+      *kernel_ir = kernel_blob_ptr->get();
+      ASSERT(DartUtils::SniffForMagicNumber(*kernel_ir, *kernel_ir_size) ==
+             DartUtils::kKernelMagicNumber);
+      return true;
+    }
+  }
+
   uint8_t* buffer;
   if (!TryReadFile(script_uri, &buffer, kernel_ir_size, decode_uri)) {
     return false;
@@ -456,5 +477,72 @@
   return TryReadSimpleKernelBuffer(buffer, kernel_ir, kernel_ir_size);
 }
 
+const char* DFE::RegisterKernelBlob(const uint8_t* kernel_buffer,
+                                    intptr_t kernel_buffer_size) {
+  ASSERT(DartUtils::SniffForMagicNumber(kernel_buffer, kernel_buffer_size) ==
+         DartUtils::kKernelMagicNumber);
+  uint8_t* buffer_copy = reinterpret_cast<uint8_t*>(malloc(kernel_buffer_size));
+  if (buffer_copy == nullptr) {
+    return nullptr;
+  }
+  memmove(buffer_copy, kernel_buffer, kernel_buffer_size);
+
+  MutexLocker ml(&kernel_blobs_lock_);
+  ++kernel_blob_counter_;
+  char* uri =
+      Utils::SCreate("dart-kernel-blob://blob%" Pd, kernel_blob_counter_);
+  KernelBlob* blob = new KernelBlob(uri, buffer_copy, kernel_buffer_size);
+
+  const uint32_t hash = SimpleHashMap::StringHash(uri);
+  SimpleHashMap::Entry* entry =
+      kernel_blobs_.Lookup(uri, hash, /*insert=*/true);
+  ASSERT(entry != nullptr);
+  ASSERT(entry->value == nullptr);
+  entry->value = blob;
+
+  return uri;
+}
+
+std::shared_ptr<uint8_t> DFE::TryFindKernelBlob(const char* uri,
+                                                intptr_t* kernel_length) {
+  *kernel_length = -1;
+
+  MutexLocker ml(&kernel_blobs_lock_);
+  if (kernel_blob_counter_ == 0) {
+    return nullptr;
+  }
+
+  // This const_cast is safe as this 'key' is only used to find entry, not add.
+  void* key = const_cast<char*>(uri);
+  const uint32_t hash = SimpleHashMap::StringHash(uri);
+  SimpleHashMap::Entry* entry =
+      kernel_blobs_.Lookup(key, hash, /*insert=*/false);
+  if (entry == nullptr) {
+    return nullptr;
+  }
+
+  KernelBlob* blob = reinterpret_cast<KernelBlob*>(entry->value);
+  *kernel_length = blob->size();
+  return blob->buffer();
+}
+
+void DFE::UnregisterKernelBlob(const char* uri) {
+  MutexLocker ml(&kernel_blobs_lock_);
+
+  // This const_cast is safe as this 'key' is only used to find entry, not add.
+  void* key = const_cast<char*>(uri);
+  const uint32_t hash = SimpleHashMap::StringHash(uri);
+  SimpleHashMap::Entry* entry =
+      kernel_blobs_.Lookup(key, hash, /*insert=*/false);
+  if (entry == nullptr) {
+    return;
+  }
+
+  KernelBlob* blob = reinterpret_cast<KernelBlob*>(entry->value);
+  entry->value = nullptr;
+  kernel_blobs_.Remove(key, hash);
+  delete blob;
+}
+
 }  // namespace bin
 }  // namespace dart
diff --git a/runtime/bin/dfe.h b/runtime/bin/dfe.h
index eb18df6..21700db 100644
--- a/runtime/bin/dfe.h
+++ b/runtime/bin/dfe.h
@@ -7,10 +7,12 @@
 
 #include <memory>
 
+#include "bin/thread.h"
 #include "include/dart_api.h"
 #include "include/dart_native_api.h"
 #include "platform/assert.h"
 #include "platform/globals.h"
+#include "platform/hashmap.h"
 #include "platform/utils.h"
 
 namespace dart {
@@ -102,23 +104,34 @@
 
   // Reads the script kernel file if specified 'script_uri' is a kernel file.
   // Returns an in memory kernel representation of the specified script is a
-  // valid kernel file, false otherwise.
+  // valid kernel file, sets 'kernel_buffer' to nullptr otherwise.
+  //
+  // If 'kernel_blob_ptr' is not nullptr, then this function can also
+  // read kernel blobs. In such case it sets 'kernel_blob_ptr'
+  // to a shared pointer which owns the kernel buffer.
+  // Othwerise, the caller is responsible for free()ing 'kernel_buffer'.
   void ReadScript(const char* script_uri,
                   uint8_t** kernel_buffer,
                   intptr_t* kernel_buffer_size,
-                  bool decode_uri = true) const;
+                  bool decode_uri = true,
+                  std::shared_ptr<uint8_t>* kernel_blob_ptr = nullptr);
 
   bool KernelServiceDillAvailable() const;
 
-  // Tries to read [script_uri] as a Kernel IR file.
-  // Returns `true` if successful and sets [kernel_file] and [kernel_length]
+  // Tries to read 'script_uri' as a Kernel IR file.
+  // Returns `true` if successful and sets 'kernel_buffer' and 'kernel_length'
   // to be the kernel IR contents.
-  // The caller is responsible for free()ing [kernel_file] if `true`
-  // was returned.
-  static bool TryReadKernelFile(const char* script_uri,
-                                uint8_t** kernel_buffer,
-                                intptr_t* kernel_buffer_size,
-                                bool decode_uri = true);
+  //
+  // If 'kernel_blob_ptr' is not nullptr, then this function can also
+  // read kernel blobs. In such case it sets 'kernel_blob_ptr'
+  // to a shared pointer which owns the kernel buffer.
+  // Othwerise, the caller is responsible for free()ing 'kernel_buffer'
+  // if `true` was returned.
+  bool TryReadKernelFile(const char* script_uri,
+                         uint8_t** kernel_buffer,
+                         intptr_t* kernel_buffer_size,
+                         bool decode_uri = true,
+                         std::shared_ptr<uint8_t>* kernel_blob_ptr = nullptr);
 
   // We distinguish between "intent to use Dart frontend" vs "can actually
   // use Dart frontend". The method UseDartFrontend tells us about the
@@ -131,6 +144,22 @@
   void LoadKernelService(const uint8_t** kernel_service_buffer,
                          intptr_t* kernel_service_buffer_size);
 
+  // Registers given kernel blob and returns blob URI which
+  // can be used in TryReadKernelFile later to load the given kernel.
+  // Data from [kernel_buffer] is copied, it doesn't need to stay alive.
+  // Returns NULL if failed to allocate memory.
+  const char* RegisterKernelBlob(const uint8_t* kernel_buffer,
+                                 intptr_t kernel_buffer_size);
+
+  // Looks for kernel blob using the given [uri].
+  // Returns non-null pointer to the kernel blob if successful and
+  // sets [kernel_length].
+  std::shared_ptr<uint8_t> TryFindKernelBlob(const char* uri,
+                                             intptr_t* kernel_length);
+
+  // Unregisters kernel blob with given URI.
+  void UnregisterKernelBlob(const char* uri);
+
  private:
   bool use_dfe_;
   bool use_incremental_compiler_;
@@ -142,11 +171,33 @@
   uint8_t* application_kernel_buffer_;
   intptr_t application_kernel_buffer_size_;
 
+  // Registry of kernel blobs. Maps URI (char *) to KernelBlob.
+  SimpleHashMap kernel_blobs_;
+  intptr_t kernel_blob_counter_ = 0;
+  Mutex kernel_blobs_lock_;
+
   void InitKernelServiceAndPlatformDills();
 
   DISALLOW_COPY_AND_ASSIGN(DFE);
 };
 
+class KernelBlob {
+ public:
+  // Takes ownership over [uri] and [buffer].
+  KernelBlob(char* uri, uint8_t* buffer, intptr_t size)
+      : uri_(uri, std::free), buffer_(buffer, std::free), size_(size) {}
+
+  std::shared_ptr<uint8_t> buffer() { return buffer_; }
+  intptr_t size() const { return size_; }
+
+ private:
+  Utils::CStringUniquePtr uri_;
+  std::shared_ptr<uint8_t> buffer_;
+  const intptr_t size_;
+
+  DISALLOW_COPY_AND_ASSIGN(KernelBlob);
+};
+
 class PathSanitizer {
  public:
   explicit PathSanitizer(const char* path);
diff --git a/runtime/bin/loader.cc b/runtime/bin/loader.cc
index 045bf33..709fc54 100644
--- a/runtime/bin/loader.cc
+++ b/runtime/bin/loader.cc
@@ -83,8 +83,8 @@
   if (tag == Dart_kKernelTag) {
     uint8_t* kernel_buffer = NULL;
     intptr_t kernel_buffer_size = 0;
-    if (!DFE::TryReadKernelFile(url_string, &kernel_buffer,
-                                &kernel_buffer_size)) {
+    if (!dfe.TryReadKernelFile(url_string, &kernel_buffer,
+                               &kernel_buffer_size)) {
       return DartUtils::NewError("'%s' is not a kernel file", url_string);
     }
     result = Dart_NewExternalTypedData(Dart_TypedData_kUint8, kernel_buffer,
diff --git a/runtime/bin/main.cc b/runtime/bin/main.cc
index 3461f25..52beba4 100644
--- a/runtime/bin/main.cc
+++ b/runtime/bin/main.cc
@@ -689,7 +689,7 @@
   int64_t start = Dart_TimelineGetMicros();
   ASSERT(script_uri != NULL);
   uint8_t* kernel_buffer = NULL;
-  std::shared_ptr<uint8_t> parent_kernel_buffer;
+  std::shared_ptr<uint8_t> kernel_buffer_ptr;
   intptr_t kernel_buffer_size = 0;
   AppSnapshot* app_snapshot = NULL;
 
@@ -750,13 +750,14 @@
   if (flags->copy_parent_code && callback_data != nullptr) {
     auto parent_isolate_group_data =
         reinterpret_cast<IsolateData*>(callback_data)->isolate_group_data();
-    parent_kernel_buffer = parent_isolate_group_data->kernel_buffer();
-    kernel_buffer = parent_kernel_buffer.get();
+    kernel_buffer_ptr = parent_isolate_group_data->kernel_buffer();
+    kernel_buffer = kernel_buffer_ptr.get();
     kernel_buffer_size = parent_isolate_group_data->kernel_buffer_size();
   }
 
   if (kernel_buffer == NULL && !isolate_run_app_snapshot) {
-    dfe.ReadScript(script_uri, &kernel_buffer, &kernel_buffer_size);
+    dfe.ReadScript(script_uri, &kernel_buffer, &kernel_buffer_size,
+                   /*decode_uri=*/true, &kernel_buffer_ptr);
   }
   PathSanitizer script_uri_sanitizer(script_uri);
   PathSanitizer packages_config_sanitizer(packages_config);
@@ -770,9 +771,9 @@
   auto isolate_group_data = new IsolateGroupData(
       script_uri, packages_config, app_snapshot, isolate_run_app_snapshot);
   if (kernel_buffer != NULL) {
-    if (parent_kernel_buffer) {
+    if (kernel_buffer_ptr) {
       isolate_group_data->SetKernelBufferAlreadyOwned(
-          std::move(parent_kernel_buffer), kernel_buffer_size);
+          std::move(kernel_buffer_ptr), kernel_buffer_size);
     } else {
       isolate_group_data->SetKernelBufferNewlyOwned(kernel_buffer,
                                                     kernel_buffer_size);
@@ -888,6 +889,16 @@
                                           error, &exit_code);
 }
 
+#if !defined(DART_PRECOMPILED_RUNTIME)
+static const char* RegisterKernelBlob(const uint8_t* kernel_buffer,
+                                      intptr_t kernel_buffer_size) {
+  return dfe.RegisterKernelBlob(kernel_buffer, kernel_buffer_size);
+}
+static void UnregisterKernelBlob(const char* kernel_blob_uri) {
+  dfe.UnregisterKernelBlob(kernel_blob_uri);
+}
+#endif  // !defined(DART_PRECOMPILED_RUNTIME)
+
 static void OnIsolateShutdown(void* isolate_group_data, void* isolate_data) {
   Dart_EnterScope();
   Dart_Handle sticky_error = Dart_GetStickyError();
@@ -1332,6 +1343,10 @@
 #if !defined(DART_PRECOMPILED_RUNTIME)
   init_params.start_kernel_isolate =
       dfe.UseDartFrontend() && dfe.CanUseDartFrontend();
+  if (init_params.start_kernel_isolate) {
+    init_params.register_kernel_blob = RegisterKernelBlob;
+    init_params.unregister_kernel_blob = UnregisterKernelBlob;
+  }
 #else
   init_params.start_kernel_isolate = false;
 #endif
diff --git a/runtime/include/analyze_snapshot_api.h b/runtime/include/analyze_snapshot_api.h
new file mode 100644
index 0000000..e02f461
--- /dev/null
+++ b/runtime/include/analyze_snapshot_api.h
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
+ * for details. All rights reserved. Use of this source code is governed by a
+ * BSD-style license that can be found in the LICENSE file.
+ */
+
+#ifndef RUNTIME_INCLUDE_ANALYZE_SNAPSHOT_API_H_
+#define RUNTIME_INCLUDE_ANALYZE_SNAPSHOT_API_H_
+
+#include <stdint.h>
+
+namespace dart {
+namespace snapshot_analyzer {
+typedef struct {
+  const uint8_t* vm_snapshot_data;
+  const uint8_t* vm_snapshot_instructions;
+  const uint8_t* vm_isolate_data;
+  const uint8_t* vm_isolate_instructions;
+} Dart_SnapshotAnalyzerInformation;
+
+void Dart_DumpSnapshotInformationAsJson(char** buffer,
+                                        intptr_t* buffer_length,
+                                        Dart_SnapshotAnalyzerInformation* info);
+}  // namespace snapshot_analyzer
+}  // namespace dart
+
+#endif  // RUNTIME_INCLUDE_ANALYZE_SNAPSHOT_API_H_
diff --git a/runtime/include/dart_api.h b/runtime/include/dart_api.h
index 360de52..b884b36 100644
--- a/runtime/include/dart_api.h
+++ b/runtime/include/dart_api.h
@@ -920,6 +920,36 @@
 DART_EXPORT void Dart_RunTask(Dart_Task task);
 
 /**
+ * Optional callback provided by the embedder that is used by the VM to
+ * implement registration of kernel blobs for the subsequent Isolate.spawnUri
+ * If no callback is provided, the registration of kernel blobs will throw
+ * an error.
+ * 
+ * \param kernel_buffer A buffer which contains a kernel program. Callback
+ *                      should copy the contents of `kernel_buffer` as
+ *                      it may be freed immediately after registration.
+ * \param kernel_buffer_size The size of `kernel_buffer`.
+ *
+ * \return A C string representing URI which can be later used
+ *         to spawn a new isolate. This C String should be scope allocated
+ *         or owned by the embedder.
+ *         Returns NULL if embedder runs out of memory.
+ */
+typedef const char* (*Dart_RegisterKernelBlobCallback)(
+    const uint8_t* kernel_buffer,
+    intptr_t kernel_buffer_size);
+
+/**
+ * Optional callback provided by the embedder that is used by the VM to
+ * unregister kernel blobs.
+ * If no callback is provided, the unregistration of kernel blobs will throw
+ * an error.
+ * 
+ * \param kernel_blob_uri URI of the kernel blob to unregister.
+ */
+typedef void (*Dart_UnregisterKernelBlobCallback)(const char* kernel_blob_uri);
+
+/**
  * Describes how to initialize the VM. Used with Dart_Initialize.
  */
 typedef struct {
@@ -1003,6 +1033,16 @@
   Dart_PostTaskCallback post_task;
 
   void* post_task_data;
+
+  /**
+   * Kernel blob registration callback function. See Dart_RegisterKernelBlobCallback.
+   */
+  Dart_RegisterKernelBlobCallback register_kernel_blob;
+
+  /**
+   * Kernel blob unregistration callback function. See Dart_UnregisterKernelBlobCallback.
+   */
+  Dart_UnregisterKernelBlobCallback unregister_kernel_blob;
 } Dart_InitializeParams;
 
 /**
diff --git a/runtime/lib/isolate.cc b/runtime/lib/isolate.cc
index 370b9d7..f573579 100644
--- a/runtime/lib/isolate.cc
+++ b/runtime/lib/isolate.cc
@@ -1071,6 +1071,62 @@
   return root_lib.url();
 }
 
+DEFINE_NATIVE_ENTRY(Isolate_registerKernelBlob, 0, 1) {
+  GET_NON_NULL_NATIVE_ARGUMENT(TypedData, kernel_blob,
+                               arguments->NativeArgAt(0));
+  auto register_kernel_blob_callback = Isolate::RegisterKernelBlobCallback();
+  if (register_kernel_blob_callback == nullptr) {
+    const auto& error =
+        String::Handle(zone, String::New("Registration of kernel blobs is not "
+                                         "supported by this Dart embedder.\n"));
+    Exceptions::ThrowArgumentError(error);
+    UNREACHABLE();
+  }
+  bool is_kernel = false;
+  {
+    NoSafepointScope no_safepoint;
+    is_kernel =
+        Dart_IsKernel(reinterpret_cast<uint8_t*>(kernel_blob.DataAddr(0)),
+                      kernel_blob.LengthInBytes());
+  }
+  if (!is_kernel) {
+    const auto& error = String::Handle(
+        zone, String::New("kernelBlob doesn\'t contain a valid kernel.\n"));
+    Exceptions::ThrowArgumentError(error);
+    UNREACHABLE();
+  }
+  const char* uri = nullptr;
+  {
+    NoSafepointScope no_safepoint;
+    uri = register_kernel_blob_callback(
+        reinterpret_cast<uint8_t*>(kernel_blob.DataAddr(0)),
+        kernel_blob.LengthInBytes());
+  }
+  if (uri == nullptr) {
+    const Instance& exception = Instance::Handle(
+        thread->isolate_group()->object_store()->out_of_memory());
+    Exceptions::Throw(thread, exception);
+    UNREACHABLE();
+  }
+  return String::New(uri);
+}
+
+DEFINE_NATIVE_ENTRY(Isolate_unregisterKernelBlob, 0, 1) {
+  GET_NON_NULL_NATIVE_ARGUMENT(String, kernel_blob_uri,
+                               arguments->NativeArgAt(0));
+  auto unregister_kernel_blob_callback =
+      Isolate::UnregisterKernelBlobCallback();
+  if (unregister_kernel_blob_callback == nullptr) {
+    const auto& error =
+        String::Handle(zone, String::New("Registration of kernel blobs is not "
+                                         "supported by this Dart embedder.\n"));
+    Exceptions::ThrowArgumentError(error);
+    UNREACHABLE();
+  }
+  unregister_kernel_blob_callback(kernel_blob_uri.ToCString());
+  return Object::null();
+}
+
 DEFINE_NATIVE_ENTRY(Isolate_sendOOB, 0, 2) {
   GET_NON_NULL_NATIVE_ARGUMENT(SendPort, port, arguments->NativeArgAt(0));
   GET_NON_NULL_NATIVE_ARGUMENT(Array, msg, arguments->NativeArgAt(1));
diff --git a/runtime/platform/hashmap.h b/runtime/platform/hashmap.h
index e3e9c5a..f71600f 100644
--- a/runtime/platform/hashmap.h
+++ b/runtime/platform/hashmap.h
@@ -23,7 +23,7 @@
 
   static bool SamePointerValue(void* key1, void* key2) { return key1 == key2; }
 
-  static uint32_t StringHash(char* key) {
+  static uint32_t StringHash(const char* key) {
     uint32_t hash_ = 0;
     if (key == NULL) return hash_;
     int len = strlen(key);
diff --git a/runtime/tests/vm/dart/analyze_snapshot_binary_test.dart b/runtime/tests/vm/dart/analyze_snapshot_binary_test.dart
new file mode 100644
index 0000000..088e519
--- /dev/null
+++ b/runtime/tests/vm/dart/analyze_snapshot_binary_test.dart
@@ -0,0 +1,294 @@
+// Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:convert';
+import 'dart:io';
+import 'dart:async';
+
+import 'package:expect/expect.dart';
+import 'package:native_stack_traces/elf.dart';
+import 'package:path/path.dart' as path;
+
+import 'use_flag_test_helper.dart';
+
+// Used to ensure we don't have multiple equivalent calls to test.
+final _seenDescriptions = <String>{};
+
+Future<void> testAOT(String dillPath,
+    {bool useAsm = false,
+    bool forceDrops = false,
+    bool stripUtil = false, // Note: forced true if useAsm.
+    bool stripFlag = false,
+    bool disassemble = false}) async {
+  if (const bool.fromEnvironment('dart.vm.product') && disassemble) {
+    Expect.isFalse(disassemble, 'no use of disassembler in PRODUCT mode');
+  }
+
+  final analyzeSnapshot = path.join(
+      buildDir,
+      bool.fromEnvironment('dart.vm.product')
+          ? 'analyze_snapshot_product'
+          : 'analyze_snapshot');
+
+  // For assembly, we can't test the sizes of the snapshot sections, since we
+  // don't have a Mach-O reader for Mac snapshots and for ELF, the assembler
+  // merges the text/data sections and the VM/isolate section symbols may not
+  // have length information. Thus, we force external stripping so we can test
+  // the approximate size of the stripped snapshot.
+  if (useAsm) {
+    stripUtil = true;
+  }
+
+  final descriptionBuilder = StringBuffer()..write(useAsm ? 'assembly' : 'elf');
+  if (forceDrops) {
+    descriptionBuilder.write('-dropped');
+  }
+  if (stripFlag) {
+    descriptionBuilder.write('-intstrip');
+  }
+  if (stripUtil) {
+    descriptionBuilder.write('-extstrip');
+  }
+  if (disassemble) {
+    descriptionBuilder.write('-disassembled');
+  }
+
+  final description = descriptionBuilder.toString();
+  Expect.isTrue(_seenDescriptions.add(description),
+      "test configuration $description would be run multiple times");
+
+  await withTempDir('analyze_snapshot_binary-$description',
+      (String tempDir) async {
+    // Generate the snapshot
+    final snapshotPath = path.join(tempDir, 'test.snap');
+    final commonSnapshotArgs = [
+      if (stripFlag) '--strip', //  gen_snapshot specific and not a VM flag.
+      if (forceDrops) ...[
+        '--dwarf-stack-traces',
+        '--no-retain-function-objects',
+        '--no-retain-code-objects'
+      ],
+      if (disassemble) '--disassemble', // Not defined in PRODUCT mode.
+      dillPath,
+    ];
+
+    if (useAsm) {
+      final assemblyPath = path.join(tempDir, 'test.S');
+
+      await run(genSnapshot, <String>[
+        '--snapshot-kind=app-aot-assembly',
+        '--assembly=$assemblyPath',
+        ...commonSnapshotArgs,
+      ]);
+
+      await assembleSnapshot(assemblyPath, snapshotPath);
+    } else {
+      await run(genSnapshot, <String>[
+        '--snapshot-kind=app-aot-elf',
+        '--elf=$snapshotPath',
+        ...commonSnapshotArgs,
+      ]);
+    }
+
+    print("Snapshot generated at $snapshotPath.");
+
+    // May not be ELF, but another format.
+    final elf = Elf.fromFile(snapshotPath);
+    if (!useAsm) {
+      Expect.isNotNull(elf);
+    }
+
+    if (elf != null) {
+      // Verify some ELF file format parameters.
+      final textSections = elf.namedSections(".text");
+      Expect.isNotEmpty(textSections);
+      Expect.isTrue(
+          textSections.length <= 2, "More text sections than expected");
+      final dataSections = elf.namedSections(".rodata");
+      Expect.isNotEmpty(dataSections);
+      Expect.isTrue(
+          dataSections.length <= 2, "More data sections than expected");
+    }
+
+    final analyzerOutputPath = path.join(tempDir, 'analyze_test.json');
+
+    // This will throw if exit code is not 0.
+    await run(analyzeSnapshot, <String>[
+      '--out=$analyzerOutputPath',
+      '$snapshotPath',
+    ]);
+
+    final analyzerJsonBytes = await readFile(analyzerOutputPath);
+    final analyzerJson = json.decode(analyzerJsonBytes);
+    Expect.isFalse(analyzerJson.isEmpty);
+    Expect.isTrue(analyzerJson.keys
+        .toSet()
+        .containsAll(['snapshot_data', 'class_table', 'object_pool']));
+  });
+}
+
+Match? matchComplete(RegExp regexp, String line) {
+  Match? match = regexp.firstMatch(line);
+  if (match == null) return match;
+  if (match.start != 0 || match.end != line.length) return null;
+  return match;
+}
+
+// All fields of "Raw..." classes defined in "raw_object.h" must be included in
+// the giant macro in "raw_object_fields.cc". This function attempts to check
+// that with some basic regexes.
+testMacros() async {
+  const String className = "([a-z0-9A-Z]+)";
+  const String rawClass = "Raw$className";
+  const String fieldName = "([a-z0-9A-Z_]+)";
+
+  final Map<String, Set<String>> fields = {};
+
+  final String rawObjectFieldsPath =
+      path.join(sdkDir, 'runtime', 'vm', 'raw_object_fields.cc');
+  final RegExp fieldEntry = RegExp(" *F\\($className, $fieldName\\) *\\\\?");
+
+  await for (String line in File(rawObjectFieldsPath)
+      .openRead()
+      .cast<List<int>>()
+      .transform(utf8.decoder)
+      .transform(LineSplitter())) {
+    Match? match = matchComplete(fieldEntry, line);
+    if (match != null) {
+      fields
+          .putIfAbsent(match.group(1)!, () => Set<String>())
+          .add(match.group(2)!);
+    }
+  }
+
+  final RegExp classStart = RegExp("class $rawClass : public $rawClass {");
+  final RegExp classEnd = RegExp("}");
+  final RegExp field = RegExp("  $rawClass. +$fieldName;.*");
+
+  final String rawObjectPath =
+      path.join(sdkDir, 'runtime', 'vm', 'raw_object.h');
+
+  String? currentClass;
+  bool hasMissingFields = false;
+  await for (String line in File(rawObjectPath)
+      .openRead()
+      .cast<List<int>>()
+      .transform(utf8.decoder)
+      .transform(LineSplitter())) {
+    Match? match = matchComplete(classStart, line);
+    if (match != null) {
+      currentClass = match.group(1);
+      continue;
+    }
+    match = matchComplete(classEnd, line);
+    if (match != null) {
+      currentClass = null;
+      continue;
+    }
+    match = matchComplete(field, line);
+    if (match != null && currentClass != null) {
+      if (fields[currentClass] == null) {
+        hasMissingFields = true;
+        print("$currentClass is missing entirely.");
+        continue;
+      }
+      if (!fields[currentClass]!.contains(match.group(2)!)) {
+        hasMissingFields = true;
+        print("$currentClass is missing ${match.group(2)!}.");
+      }
+    }
+  }
+
+  if (hasMissingFields) {
+    Expect.fail("$rawObjectFieldsPath is missing some fields. "
+        "Please update it to match $rawObjectPath.");
+  }
+}
+
+main() async {
+  void printSkip(String description) =>
+      print('Skipping $description for ${path.basename(buildDir)} '
+              'on ${Platform.operatingSystem}' +
+          (clangBuildToolsDir == null ? ' without //buildtools' : ''));
+
+  // We don't have access to the SDK on Android.
+  if (Platform.isAndroid) {
+    printSkip('all tests');
+    return;
+  }
+
+  await testMacros();
+
+  await withTempDir('analyze_snapshot_binary', (String tempDir) async {
+    // We only need to generate the dill file once for all JIT tests.
+    final _thisTestPath = path.join(sdkDir, 'runtime', 'tests', 'vm', 'dart',
+        'analyze_snapshot_binary_test.dart');
+
+    // We only need to generate the dill file once for all AOT tests.
+    final aotDillPath = path.join(tempDir, 'aot_test.dill');
+    await run(genKernel, <String>[
+      '--aot',
+      '--platform',
+      platformDill,
+      ...Platform.executableArguments.where((arg) =>
+          arg.startsWith('--enable-experiment=') ||
+          arg == '--sound-null-safety' ||
+          arg == '--no-sound-null-safety'),
+      '-o',
+      aotDillPath,
+      _thisTestPath
+    ]);
+
+    // Just as a reminder for AOT tests:
+    // * If useAsm is true, then stripUtil is forced (as the assembler may add
+    //   extra information that needs stripping), so no need to specify
+    //   stripUtil for useAsm tests.
+
+    // Test unstripped ELF generation directly.
+    await testAOT(aotDillPath);
+    await testAOT(aotDillPath, forceDrops: true);
+
+    // Test flag-stripped ELF generation.
+    await testAOT(aotDillPath, stripFlag: true);
+
+    // Since we can't force disassembler support after the fact when running
+    // in PRODUCT mode, skip any --disassemble tests. Do these tests last as
+    // they have lots of output and so the log will be truncated.
+    if (!const bool.fromEnvironment('dart.vm.product')) {
+      // Regression test for dartbug.com/41149.
+      await testAOT(aotDillPath, disassemble: true);
+    }
+
+    // We neither generate assembly nor have a stripping utility on Windows.
+    if (Platform.isWindows) {
+      printSkip('external stripping and assembly tests');
+      return;
+    }
+
+    // The native strip utility on Mac OS X doesn't recognize ELF files.
+    if (Platform.isMacOS && clangBuildToolsDir == null) {
+      printSkip('ELF external stripping test');
+    } else {
+      // Test unstripped ELF generation that is then externally stripped.
+      await testAOT(aotDillPath, stripUtil: true);
+    }
+
+    // TODO(sstrickl): Currently we can't assemble for SIMARM64 on MacOSX.
+    // For example, the test runner still uses blobs for
+    // dartkp-mac-*-simarm64. Change assembleSnapshot and remove this check
+    // when we can.
+    if (Platform.isMacOS && buildDir.endsWith('SIMARM64')) {
+      printSkip('assembly tests');
+      return;
+    }
+    // Test unstripped assembly generation that is then externally stripped.
+    await testAOT(aotDillPath, useAsm: true);
+    // Test stripped assembly generation that is then externally stripped.
+    await testAOT(aotDillPath, useAsm: true, stripFlag: true);
+  });
+}
+
+Future<String> readFile(String file) {
+  return new File(file).readAsString();
+}
diff --git a/runtime/tests/vm/dart/disassemble_aot_test.dart b/runtime/tests/vm/dart/disassemble_aot_test.dart
index 80a32c3..24454ac 100644
--- a/runtime/tests/vm/dart/disassemble_aot_test.dart
+++ b/runtime/tests/vm/dart/disassemble_aot_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 //
-// OtherResources=use_dwarf_stack_traces_flag_program.dart
+// OtherResources=hello_world_test.dart
 //
 // Tests proper object recognition in disassembler.
 
@@ -40,7 +40,7 @@
 
   await withTempDir('disassemble_aot', (String tempDir) async {
     final cwDir = path.dirname(Platform.script.toFilePath());
-    final script = path.join(cwDir, 'use_dwarf_stack_traces_flag_program.dart');
+    final script = path.join(cwDir, 'hello_world_test.dart');
     final scriptDill = path.join(tempDir, 'out.dill');
 
     // Compile script to Kernel IR.
@@ -54,14 +54,17 @@
 
     // Run the AOT compiler with the disassemble flags set.
     final elfFile = path.join(tempDir, 'aot.snapshot');
-    await Future.wait(<Future>[
-      run(genSnapshot, <String>[
-        '--snapshot-kind=app-aot-elf',
-        '--disassemble',
-        '--always_generate_trampolines_for_testing',
-        '--elf=$elfFile',
-        scriptDill,
-      ]),
+    await run(genSnapshot, <String>[
+      '--disassemble',
+      '--disassemble_stubs',
+      '--always_generate_trampolines_for_testing',
+      '--snapshot-kind=app-aot-elf',
+      '--elf=$elfFile',
+      scriptDill
     ]);
+
+    // Run the AOT runtime with the disassemble flags set.
+    await run(
+        aotRuntime, <String>['--disassemble', '--disassemble_stubs', elfFile]);
   });
 }
diff --git a/runtime/tests/vm/dart/spawn_uri_from_kernel_blob_script.dart b/runtime/tests/vm/dart/spawn_uri_from_kernel_blob_script.dart
new file mode 100644
index 0000000..43a200d
--- /dev/null
+++ b/runtime/tests/vm/dart/spawn_uri_from_kernel_blob_script.dart
@@ -0,0 +1,11 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import "dart:convert";
+import "dart:isolate";
+
+main(List<String> args, SendPort replyPort) {
+  final String encoded = base64.encode(args[0].codeUnits);
+  replyPort.send(String.fromCharCodes(base64.decode(encoded)));
+}
diff --git a/runtime/tests/vm/dart/spawn_uri_from_kernel_blob_test.dart b/runtime/tests/vm/dart/spawn_uri_from_kernel_blob_test.dart
new file mode 100644
index 0000000..c9c2ae6
--- /dev/null
+++ b/runtime/tests/vm/dart/spawn_uri_from_kernel_blob_test.dart
@@ -0,0 +1,63 @@
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// OtherResources=spawn_uri_from_kernel_blob_script.dart
+
+// Test for Isolate.createUriForKernelBlob and subsequent Isolate.spawnUri.
+
+import 'dart:io' show Platform;
+import 'dart:isolate' show Isolate, ReceivePort;
+import 'dart:typed_data' show Uint8List;
+
+import "package:expect/expect.dart";
+import 'package:front_end/src/api_unstable/vm.dart'
+    show CompilerOptions, DiagnosticMessage, kernelForProgram, NnbdMode;
+import 'package:kernel/kernel.dart';
+import 'package:kernel/target/targets.dart';
+import 'package:vm/target/vm.dart' show VmTarget;
+
+import 'snapshot_test_helper.dart';
+
+main() async {
+  final sourceUri =
+      Platform.script.resolve('spawn_uri_from_kernel_blob_script.dart');
+  final options = new CompilerOptions()
+    ..target = VmTarget(TargetFlags())
+    ..additionalDills = <Uri>[Uri.file(platformDill)]
+    ..environmentDefines = {}
+    ..nnbdMode = hasSoundNullSafety ? NnbdMode.Strong : NnbdMode.Weak
+    ..onDiagnostic = (DiagnosticMessage message) {
+      Expect.fail(
+          "Compilation error: ${message.plainTextFormatted.join('\n')}");
+    };
+  final Component component =
+      (await kernelForProgram(sourceUri, options))!.component!;
+  final kernelBlob = writeComponentToBytes(component) as Uint8List;
+
+  final kernelBlobUri =
+      (Isolate.current as dynamic).createUriForKernelBlob(kernelBlob);
+
+  print('URI: $kernelBlobUri');
+
+  for (int i = 0; i < 2; ++i) {
+    final receivePort = ReceivePort();
+    receivePort.listen((message) {
+      Expect.equals(message, 'Hello');
+      print('ok');
+      receivePort.close();
+    });
+
+    await Isolate.spawnUri(kernelBlobUri, ['Hello'], receivePort.sendPort);
+  }
+
+  (Isolate.current as dynamic).unregisterKernelBlobUri(kernelBlobUri);
+
+  try {
+    await Isolate.spawnUri(kernelBlobUri, ['Hello'], null);
+    Expect.fail(
+        "Isolate.spawnUri didn't complete with error after unregisterKernelBlobUri");
+  } catch (e) {
+    print('Got exception: $e');
+  }
+}
diff --git a/runtime/tests/vm/dart_2/analyze_snapshot_binary_test.dart b/runtime/tests/vm/dart_2/analyze_snapshot_binary_test.dart
new file mode 100644
index 0000000..058e7ea
--- /dev/null
+++ b/runtime/tests/vm/dart_2/analyze_snapshot_binary_test.dart
@@ -0,0 +1,294 @@
+// Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// @dart = 2.9
+
+import 'dart:convert';
+import 'dart:io';
+import 'dart:async';
+
+import 'package:expect/expect.dart';
+import 'package:native_stack_traces/elf.dart';
+import 'package:path/path.dart' as path;
+
+import 'use_flag_test_helper.dart';
+
+// Used to ensure we don't have multiple equivalent calls to test.
+final _seenDescriptions = <String>{};
+
+Future<void> testAOT(String dillPath,
+    {bool useAsm = false,
+    bool forceDrops = false,
+    bool stripUtil = false, // Note: forced true if useAsm.
+    bool stripFlag = false,
+    bool disassemble = false}) async {
+  if (const bool.fromEnvironment('dart.vm.product') && disassemble) {
+    Expect.isFalse(disassemble, 'no use of disassembler in PRODUCT mode');
+  }
+
+  final analyzeSnapshot = path.join(
+      buildDir,
+      bool.fromEnvironment('dart.vm.product')
+          ? 'analyze_snapshot_product'
+          : 'analyze_snapshot');
+
+  // For assembly, we can't test the sizes of the snapshot sections, since we
+  // don't have a Mach-O reader for Mac snapshots and for ELF, the assembler
+  // merges the text/data sections and the VM/isolate section symbols may not
+  // have length information. Thus, we force external stripping so we can test
+  // the approximate size of the stripped snapshot.
+  if (useAsm) {
+    stripUtil = true;
+  }
+
+  final descriptionBuilder = StringBuffer()..write(useAsm ? 'assembly' : 'elf');
+  if (forceDrops) {
+    descriptionBuilder.write('-dropped');
+  }
+  if (stripFlag) {
+    descriptionBuilder.write('-intstrip');
+  }
+  if (stripUtil) {
+    descriptionBuilder.write('-extstrip');
+  }
+  if (disassemble) {
+    descriptionBuilder.write('-disassembled');
+  }
+
+  final description = descriptionBuilder.toString();
+  Expect.isTrue(_seenDescriptions.add(description),
+      "test configuration $description would be run multiple times");
+
+  await withTempDir('analyze_snapshot_binary-$description',
+      (String tempDir) async {
+    // Generate the snapshot
+    final snapshotPath = path.join(tempDir, 'test.snap');
+    final commonSnapshotArgs = [
+      if (stripFlag) '--strip', //  gen_snapshot specific and not a VM flag.
+      if (forceDrops) ...[
+        '--dwarf-stack-traces',
+        '--no-retain-function-objects',
+        '--no-retain-code-objects'
+      ],
+      if (disassemble) '--disassemble', // Not defined in PRODUCT mode.
+      dillPath,
+    ];
+
+    if (useAsm) {
+      final assemblyPath = path.join(tempDir, 'test.S');
+
+      await run(genSnapshot, <String>[
+        '--snapshot-kind=app-aot-assembly',
+        '--assembly=$assemblyPath',
+        ...commonSnapshotArgs,
+      ]);
+
+      await assembleSnapshot(assemblyPath, snapshotPath);
+    } else {
+      await run(genSnapshot, <String>[
+        '--snapshot-kind=app-aot-elf',
+        '--elf=$snapshotPath',
+        ...commonSnapshotArgs,
+      ]);
+    }
+
+    print("Snapshot generated at $snapshotPath.");
+
+    // May not be ELF, but another format.
+    final elf = Elf.fromFile(snapshotPath);
+    if (!useAsm) {
+      Expect.isNotNull(elf);
+    }
+
+    if (elf != null) {
+      // Verify some ELF file format parameters.
+      final textSections = elf.namedSections(".text");
+      Expect.isNotEmpty(textSections);
+      Expect.isTrue(
+          textSections.length <= 2, "More text sections than expected");
+      final dataSections = elf.namedSections(".rodata");
+      Expect.isNotEmpty(dataSections);
+      Expect.isTrue(
+          dataSections.length <= 2, "More data sections than expected");
+    }
+
+    final analyzerOutputPath = path.join(tempDir, 'analyze_test.json');
+
+    // This will throw if exit code is not 0.
+    await run(analyzeSnapshot, <String>[
+      '--out=$analyzerOutputPath',
+      '$snapshotPath',
+    ]);
+
+    final analyzerJsonBytes = await readFile(analyzerOutputPath);
+    final analyzerJson = json.decode(analyzerJsonBytes);
+    Expect.isFalse(analyzerJson.isEmpty);
+    Expect.isTrue(analyzerJson.keys
+        .toSet()
+        .containsAll(['snapshot_data', 'class_table', 'object_pool']));
+  });
+}
+
+Match matchComplete(RegExp regexp, String line) {
+  Match match = regexp.firstMatch(line);
+  if (match == null) return match;
+  if (match.start != 0 || match.end != line.length) return null;
+  return match;
+}
+
+// All fields of "Raw..." classes defined in "raw_object.h" must be included in
+// the giant macro in "raw_object_fields.cc". This function attempts to check
+// that with some basic regexes.
+testMacros() async {
+  const String className = "([a-z0-9A-Z]+)";
+  const String rawClass = "Raw$className";
+  const String fieldName = "([a-z0-9A-Z_]+)";
+
+  final Map<String, Set<String>> fields = {};
+
+  final String rawObjectFieldsPath =
+      path.join(sdkDir, 'runtime', 'vm', 'raw_object_fields.cc');
+  final RegExp fieldEntry = RegExp(" *F\\($className, $fieldName\\) *\\\\?");
+
+  await for (String line in File(rawObjectFieldsPath)
+      .openRead()
+      .cast<List<int>>()
+      .transform(utf8.decoder)
+      .transform(LineSplitter())) {
+    Match match = matchComplete(fieldEntry, line);
+    if (match != null) {
+      fields
+          .putIfAbsent(match.group(1), () => Set<String>())
+          .add(match.group(2));
+    }
+  }
+
+  final RegExp classStart = RegExp("class $rawClass : public $rawClass {");
+  final RegExp classEnd = RegExp("}");
+  final RegExp field = RegExp("  $rawClass. +$fieldName;.*");
+
+  final String rawObjectPath =
+      path.join(sdkDir, 'runtime', 'vm', 'raw_object.h');
+
+  String currentClass;
+  bool hasMissingFields = false;
+  await for (String line in File(rawObjectPath)
+      .openRead()
+      .cast<List<int>>()
+      .transform(utf8.decoder)
+      .transform(LineSplitter())) {
+    Match match = matchComplete(classStart, line);
+    if (match != null) {
+      currentClass = match.group(1);
+      continue;
+    }
+
+    match = matchComplete(classEnd, line);
+    if (match != null) {
+      currentClass = null;
+      continue;
+    }
+
+    match = matchComplete(field, line);
+    if (match != null && currentClass != null) {
+      if (fields[currentClass] == null) {
+        hasMissingFields = true;
+        print("$currentClass is missing entirely.");
+        continue;
+      }
+      if (!fields[currentClass].contains(match.group(2))) {
+        hasMissingFields = true;
+        print("$currentClass is missing ${match.group(2)}.");
+      }
+    }
+  }
+
+  if (hasMissingFields) {
+    Expect.fail("$rawObjectFieldsPath is missing some fields. "
+        "Please update it to match $rawObjectPath.");
+  }
+}
+
+main() async {
+  void printSkip(String description) =>
+      print('Skipping $description for ${path.basename(buildDir)} '
+              'on ${Platform.operatingSystem}' +
+          (clangBuildToolsDir == null ? ' without //buildtools' : ''));
+
+  // We don't have access to the SDK on Android.
+  if (Platform.isAndroid) {
+    printSkip('all tests');
+    return;
+  }
+
+  await testMacros();
+
+  await withTempDir('analyze_snapshot_binary', (String tempDir) async {
+    // We only need to generate the dill file once for all JIT tests.
+    final _thisTestPath = path.join(sdkDir, 'runtime', 'tests', 'vm', 'dart_2',
+        'analyze_snapshot_binary_test.dart');
+
+    // We only need to generate the dill file once for all AOT tests.
+    final aotDillPath = path.join(tempDir, 'aot_test.dill');
+    await run(genKernel, <String>[
+      '--aot',
+      '--platform',
+      platformDill,
+      '-o',
+      aotDillPath,
+      _thisTestPath
+    ]);
+
+    // Just as a reminder for AOT tests:
+    // * If useAsm is true, then stripUtil is forced (as the assembler may add
+    //   extra information that needs stripping), so no need to specify
+    //   stripUtil for useAsm tests.
+
+    // Test unstripped ELF generation directly.
+    await testAOT(aotDillPath);
+    await testAOT(aotDillPath, forceDrops: true);
+
+    // Test flag-stripped ELF generation.
+    await testAOT(aotDillPath, stripFlag: true);
+
+    // Since we can't force disassembler support after the fact when running
+    // in PRODUCT mode, skip any --disassemble tests. Do these tests last as
+    // they have lots of output and so the log will be truncated.
+    if (!const bool.fromEnvironment('dart.vm.product')) {
+      // Regression test for dartbug.com/41149.
+      await testAOT(aotDillPath, disassemble: true);
+    }
+
+    // We neither generate assembly nor have a stripping utility on Windows.
+    if (Platform.isWindows) {
+      printSkip('external stripping and assembly tests');
+      return;
+    }
+
+    // The native strip utility on Mac OS X doesn't recognize ELF files.
+    if (Platform.isMacOS && clangBuildToolsDir == null) {
+      printSkip('ELF external stripping test');
+    } else {
+      // Test unstripped ELF generation that is then externally stripped.
+      await testAOT(aotDillPath, stripUtil: true);
+    }
+
+    // TODO(sstrickl): Currently we can't assemble for SIMARM64 on MacOSX.
+    // For example, the test runner still uses blobs for
+    // dartkp-mac-*-simarm64. Change assembleSnapshot and remove this check
+    // when we can.
+    if (Platform.isMacOS && buildDir.endsWith('SIMARM64')) {
+      printSkip('assembly tests');
+      return;
+    }
+    // Test unstripped assembly generation that is then externally stripped.
+    await testAOT(aotDillPath, useAsm: true);
+    // Test stripped assembly generation that is then externally stripped.
+    await testAOT(aotDillPath, useAsm: true, stripFlag: true);
+  });
+}
+
+Future<String> readFile(String file) {
+  return new File(file).readAsString();
+}
diff --git a/runtime/tests/vm/dart_2/disassemble_aot_test.dart b/runtime/tests/vm/dart_2/disassemble_aot_test.dart
index fd4e55e..3ce7a9e 100644
--- a/runtime/tests/vm/dart_2/disassemble_aot_test.dart
+++ b/runtime/tests/vm/dart_2/disassemble_aot_test.dart
@@ -2,7 +2,7 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 //
-// OtherResources=use_dwarf_stack_traces_flag_program.dart
+// OtherResources=hello_world_test.dart
 //
 // Tests proper object recognition in disassembler.
 
@@ -42,7 +42,7 @@
 
   await withTempDir('disassemble_aot', (String tempDir) async {
     final cwDir = path.dirname(Platform.script.toFilePath());
-    final script = path.join(cwDir, 'use_dwarf_stack_traces_flag_program.dart');
+    final script = path.join(cwDir, 'hello_world_test.dart');
     final scriptDill = path.join(tempDir, 'out.dill');
 
     // Compile script to Kernel IR.
@@ -56,14 +56,17 @@
 
     // Run the AOT compiler with the disassemble flags set.
     final elfFile = path.join(tempDir, 'aot.snapshot');
-    await Future.wait(<Future>[
-      run(genSnapshot, <String>[
-        '--snapshot-kind=app-aot-elf',
-        '--disassemble',
-        '--always_generate_trampolines_for_testing',
-        '--elf=$elfFile',
-        scriptDill,
-      ]),
+    await run(genSnapshot, <String>[
+      '--disassemble',
+      '--disassemble_stubs',
+      '--always_generate_trampolines_for_testing',
+      '--snapshot-kind=app-aot-elf',
+      '--elf=$elfFile',
+      scriptDill
     ]);
+
+    // Run the AOT runtime with the disassemble flags set.
+    await run(
+        aotRuntime, <String>['--disassemble', '--disassemble_stubs', elfFile]);
   });
 }
diff --git a/runtime/tests/vm/vm.status b/runtime/tests/vm/vm.status
index 7a97443..7b19ec9 100644
--- a/runtime/tests/vm/vm.status
+++ b/runtime/tests/vm/vm.status
@@ -41,7 +41,9 @@
 dart_2/stack_overflow_shared_test: Pass, Slow # Uses --shared-slow-path-triggers-gc flag.
 
 [ $arch == ia32 ]
+dart/analyze_snapshot_binary_test: SkipByDesign # IA32 does not support AOT.
 dart/disassemble_aot_test: SkipByDesign # IA32 does not support AOT.
+dart_2/analyze_snapshot_binary_test: SkipByDesign # IA32 does not support AOT.
 dart_2/disassemble_aot_test: SkipByDesign # IA32 does not support AOT.
 
 [ $builder_tag == asan ]
@@ -96,6 +98,7 @@
 cc/Mixin_PrivateSuperResolutionCrossLibraryShouldFail: Skip
 dart/b162922506_test: SkipByDesign # Only run in JIT
 dart/entrypoints/jit/*: SkipByDesign # These tests should only run on JIT.
+dart/spawn_uri_from_kernel_blob_test: SkipByDesign # Only run in JIT.
 dart_2/b162922506_test: SkipByDesign # Only run in JIT
 dart_2/entrypoints/jit/*: SkipByDesign # These tests should only run on JIT.
 dart_2/isolates/reload_*: SkipByDesign # These tests only run on normal JIT.
@@ -162,8 +165,10 @@
 [ $system == fuchsia ]
 cc/CorelibIsolateStartup: Skip # OOM crash can bring down the OS.
 cc/Read: Fail # TODO(zra): Investigate, ../../dart/runtime/bin/file_test.cc: 34: error: expected: !file->WriteByte(1)
+dart/analyze_snapshot_binary_test: SkipByDesign # Not supported for Fuchsia.
 dart/data_uri_spawn_test: Skip # TODO(zra): package:unittest is not in the image.
 dart/spawn_shutdown_test: Skip # OOM crash can bring down the OS.
+dart_2/analyze_snapshot_binary_test: SkipByDesign # Not supported for Fuchsia.
 dart_2/data_uri_spawn_test: Skip # TODO(zra): package:unittest is not in the image.
 dart_2/spawn_shutdown_test: Skip # OOM crash can bring down the OS.
 
@@ -180,6 +185,9 @@
 dart/transferable_test: Skip # This is performance test and somehow debug win ia32 bot's performance is unpredictable
 dart_2/transferable_test: Skip # This is performance test and somehow debug win ia32 bot's performance is unpredictable
 
+[ $arch == ia32 && ($nnbd == strong || $nnbd == weak) ]
+dart/type_casts_with_null_safety_autodetection_test: Pass, Slow # Uses --optimization-counter-threshold=10 without a kernel service snapshot.
+
 [ $arch != simarm && $arch != simarm64 && $arch != simarm64c && $arch != simriscv32 && $arch != simriscv64 && $compiler == dartk && $hot_reload ]
 dart/data_uri_import_test/base64: Crash
 dart/data_uri_import_test/nocharset: Crash
@@ -317,8 +325,10 @@
 [ $system != fuchsia && ($arch != x64 || $system != linux) ]
 cc/CodeExecutability: SkipByDesign # --dual-map-code not supported on non-Linux/Fuchsia
 
-[ $arch == arm || $arch == arm64 || $builder_tag == crossword || $builder_tag == crossword_ast || $compiler != dartkp || $system == linux && ($arch == simarm || $arch == simarm64 || $arch == simarm64c || $arch == simriscv32 || $arch == simriscv64) ]
+[ $arch == arm || $arch == arm64 || $builder_tag == crossword || $builder_tag == crossword_ast || $compiler != dartkp || $system == linux && ($arch == simarm || $arch == simarm64 || $arch == simarm64c) ]
+dart/analyze_snapshot_binary_test: SkipByDesign # These tests should only run on AOT. On Linux/simarm64 and Linux/simarm this test requires buildtools/clang which is not always available on testing shards.
 dart/v8_snapshot_profile_writer_test: SkipByDesign # Only relevant for AOT. Doesn't work in cross-compilation (has to run on the host). On Linux/simarm64 and Linux/simarm this test requires buildtools/clang which is not always available on testing shards.
+dart_2/analyze_snapshot_binary_test: SkipByDesign # These tests should only run on AOT. On Linux/simarm64 and Linux/simarm this test requires buildtools/clang which is not always available on testing shards.
 dart_2/v8_snapshot_profile_writer_test: SkipByDesign # Only relevant for AOT. Doesn't work in cross-compilation (has to run on the host). On Linux/simarm64 and Linux/simarm this test requires buildtools/clang which is not always available on testing shards.
 
 # On the simluator stack traces produced by the Profiler do not match
diff --git a/runtime/vm/analyze_snapshot_api_impl.cc b/runtime/vm/analyze_snapshot_api_impl.cc
new file mode 100644
index 0000000..ef73e76
--- /dev/null
+++ b/runtime/vm/analyze_snapshot_api_impl.cc
@@ -0,0 +1,202 @@
+// Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#include "include/analyze_snapshot_api.h"
+#include "vm/dart_api_impl.h"
+#include "vm/json_writer.h"
+#include "vm/object.h"
+#include "vm/object_store.h"
+#include "vm/thread.h"
+
+namespace dart {
+namespace snapshot_analyzer {
+void DumpClassTable(Thread* thread, dart::JSONWriter* js) {
+  auto class_table = thread->isolate_group()->class_table();
+
+  Class& cls = Class::Handle();
+  String& name = String::Handle();
+  js->OpenArray("class_table");
+
+  for (intptr_t i = 1; i < class_table->NumCids(); i++) {
+    if (!class_table->HasValidClassAt(i)) {
+      continue;
+    }
+    cls = class_table->At(i);
+    if (!cls.IsNull()) {
+      name = cls.Name();
+      js->OpenObject();
+      js->PrintProperty("id", i);
+      js->PrintProperty("name", name.ToCString());
+
+      // Note: Some meta info is stripped from the snapshot, it's important
+      // to check every field for NULL to avoid segfaults.
+      const Library& library = Library::Handle(cls.library());
+      if (!library.IsNull()) {
+        String& lib_name = String::Handle();
+        lib_name = String::NewFormatted(
+            Heap::kOld, "%s%s", String::Handle(library.url()).ToCString(),
+            String::Handle(library.private_key()).ToCString());
+        js->PrintProperty("library", lib_name.ToCString());
+      }
+
+      const AbstractType& super_type = AbstractType::Handle(cls.super_type());
+      if (super_type.IsNull()) {
+      } else {
+        const String& super_name = String::Handle(super_type.Name());
+        js->PrintProperty("super_class", super_name.ToCString());
+      }
+
+      const Array& interfaces_array = Array::Handle(cls.interfaces());
+      if (!interfaces_array.IsNull()) {
+        if (interfaces_array.Length() > 0) {
+          js->OpenArray("interfaces");
+          AbstractType& interface = AbstractType::Handle();
+          intptr_t len = interfaces_array.Length();
+          for (intptr_t i = 0; i < len; i++) {
+            interface ^= interfaces_array.At(i);
+            js->PrintValue(interface.ToCString());
+          }
+          js->CloseArray();
+        }
+      }
+      const Array& functions_array = Array::Handle(cls.functions());
+      if (!functions_array.IsNull()) {
+        if (functions_array.Length() > 0) {
+          js->OpenArray("functions");
+          Function& function = Function::Handle();
+          intptr_t len = functions_array.Length();
+          for (intptr_t i = 0; i < len; i++) {
+            function ^= functions_array.At(i);
+            if (function.IsNull() || !function.HasCode()) {
+              continue;
+            }
+            const Code& code = Code::Handle(function.CurrentCode());
+            intptr_t size = code.Size();
+
+            // Note: Some entry points here will be pointing to the VM
+            // instructions buffer.
+
+            // Note: code_entry will contain the address in the memory
+            // In order to resolve it to a relative offset in the instructions
+            // buffer we need to pick the base address and substract it from
+            // the entry point address.
+            auto code_entry = code.EntryPoint();
+            // On different architectures the type of the underlying
+            // dart::uword can result in an unsigned long long vs unsigned long
+            // mismatch.
+            uint64_t code_addr = static_cast<uint64_t>(code_entry);
+            js->OpenObject();
+            js->PrintProperty("name", function.ToCString());
+            js->PrintfProperty("code_entry", "0x%" PRIx64 "", code_addr);
+            js->PrintProperty("size", size);
+            js->CloseObject();
+          }
+          js->CloseArray();
+        }
+      }
+      const Array& fields_array = Array::Handle(cls.fields());
+      if (fields_array.IsNull()) {
+      } else {
+        if (fields_array.Length() > 0) {
+          js->OpenArray("fields");
+          Field& field = Field::Handle();
+          for (intptr_t i = 0; i < fields_array.Length(); i++) {
+            field ^= fields_array.At(i);
+            js->PrintValue(field.ToCString());
+          }
+          js->CloseArray();
+        }
+      }
+    }
+    js->CloseObject();
+  }
+  js->CloseArray();
+}
+void DumpObjectPool(Thread* thread, dart::JSONWriter* js) {
+  js->OpenArray("object_pool");
+
+  auto pool_ptr = thread->isolate_group()->object_store()->global_object_pool();
+  const auto& pool = ObjectPool::Handle(ObjectPool::RawCast(pool_ptr));
+  for (intptr_t i = 0; i < pool.Length(); i++) {
+    auto type = pool.TypeAt(i);
+    // Only interested in tagged objects.
+    // All these checks are required otherwise ToCString() will segfault.
+    if (type != ObjectPool::EntryType::kTaggedObject) {
+      continue;
+    }
+
+    auto entry = pool.ObjectAt(i);
+    if (!entry.IsHeapObject()) {
+      continue;
+    }
+
+    intptr_t cid = entry.GetClassId();
+
+    switch (cid) {
+      case kOneByteStringCid: {
+        js->OpenObject();
+        js->PrintProperty("type", "kOneByteString");
+        js->PrintProperty("id", i);
+        js->PrintProperty("offset", pool.element_offset(i));
+        js->PrintProperty("value", Object::Handle(entry).ToCString());
+        js->CloseObject();
+        break;
+      }
+      case kTwoByteStringCid: {
+        // TODO(#47924): Add support.
+        break;
+      }
+      default:
+        // TODO(#47924): Investigate other types of objects to parse.
+        break;
+    }
+  }
+  js->CloseArray();
+}
+// TODO(#47924): Add processing of the entires in the dispatch table.
+// Below is an example skeleton
+// void DumpDispatchTable(dart::Thread* thread) {
+//   auto dispatch = thread->isolate_group()->dispatch_table();
+//   auto length = dispatch->length();
+// We must unbias the array entries so we don't crash on null access.
+//   auto entries = dispatch->ArrayOrigin() - DispatchTable::OriginElement();
+//   for (intptr_t i = 0; i < length; i++) {
+//     OS::Print("0x%lx at %ld\n", entries[i], i);
+//   }
+// }
+
+void Dart_DumpSnapshotInformationAsJson(
+    char** buffer,
+    intptr_t* buffer_length,
+    Dart_SnapshotAnalyzerInformation* info) {
+  Thread* thread = Thread::Current();
+  DARTSCOPE(thread);
+  JSONWriter js;
+  // Open empty object so output is valid/parsable JSON.
+  js.OpenObject();
+  js.OpenObject("snapshot_data");
+  // Base addreses of the snapshot data, useful to calculate relative offsets.
+  js.PrintfProperty("vm_data", "%p", info->vm_snapshot_data);
+  js.PrintfProperty("vm_instructions", "%p", info->vm_snapshot_instructions);
+  js.PrintfProperty("isolate_data", "%p", info->vm_isolate_data);
+  js.PrintfProperty("isolate_instructions", "%p",
+                    info->vm_isolate_instructions);
+  js.CloseObject();
+
+  {
+    // Debug builds assert that our thread has a lock before accessing
+    // vm internal fields.
+    SafepointReadRwLocker ml(thread, thread->isolate_group()->program_lock());
+    DumpClassTable(thread, &js);
+    DumpObjectPool(thread, &js);
+  }
+
+  // Close our empty object.
+  js.CloseObject();
+
+  // Give ownership to caller.
+  js.Steal(buffer, buffer_length);
+}
+}  // namespace snapshot_analyzer
+}  // namespace dart
diff --git a/runtime/vm/bootstrap_natives.h b/runtime/vm/bootstrap_natives.h
index 0c7b4b7..df65a0d 100644
--- a/runtime/vm/bootstrap_natives.h
+++ b/runtime/vm/bootstrap_natives.h
@@ -304,6 +304,8 @@
   V(Isolate_getCurrentRootUriStr, 0)                                           \
   V(Isolate_getDebugName, 1)                                                   \
   V(Isolate_getPortAndCapabilitiesOfCurrentIsolate, 0)                         \
+  V(Isolate_registerKernelBlob, 1)                                             \
+  V(Isolate_unregisterKernelBlob, 1)                                           \
   V(Isolate_sendOOB, 2)                                                        \
   V(Isolate_spawnFunction, 10)                                                 \
   V(Isolate_spawnUri, 12)                                                      \
diff --git a/runtime/vm/compiler/assembler/disassembler.cc b/runtime/vm/compiler/assembler/disassembler.cc
index 58b3430..9d8e13c 100644
--- a/runtime/vm/compiler/assembler/disassembler.cc
+++ b/runtime/vm/compiler/assembler/disassembler.cc
@@ -316,9 +316,9 @@
   }
 #endif  // !defined(DART_PRECOMPILED_RUNTIME)
 
-  {
-    const auto& stackmaps =
-        CompressedStackMaps::Handle(zone, code.compressed_stackmaps());
+  const auto& stackmaps =
+      CompressedStackMaps::Handle(zone, code.compressed_stackmaps());
+  if (!stackmaps.IsNull()) {
     TextBuffer buffer(100);
     buffer.Printf("StackMaps for function '%s' {\n", function_fullname);
     stackmaps.WriteToBuffer(&buffer, "\n");
diff --git a/runtime/vm/compiler/backend/inliner.cc b/runtime/vm/compiler/backend/inliner.cc
index 3adbb0c..be5af29 100644
--- a/runtime/vm/compiler/backend/inliner.cc
+++ b/runtime/vm/compiler/backend/inliner.cc
@@ -3772,7 +3772,6 @@
   const MethodRecognizer::Kind kind = target.recognized_kind();
   switch (kind) {
     // Recognized [] operators.
-    case MethodRecognizer::kImmutableArrayGetIndexed:
     case MethodRecognizer::kObjectArrayGetIndexed:
     case MethodRecognizer::kGrowableArrayGetIndexed:
     case MethodRecognizer::kInt8ArrayGetIndexed:
diff --git a/runtime/vm/compiler/frontend/kernel_to_il.cc b/runtime/vm/compiler/frontend/kernel_to_il.cc
index 4ebaff1..a76ffdd 100644
--- a/runtime/vm/compiler/frontend/kernel_to_il.cc
+++ b/runtime/vm/compiler/frontend/kernel_to_il.cc
@@ -796,7 +796,6 @@
   V(ByteDataViewOffsetInBytes, TypedDataView_offset_in_bytes)                  \
   V(ByteDataViewTypedData, TypedDataView_typed_data)                           \
   V(GrowableArrayLength, GrowableObjectArray_length)                           \
-  V(ImmutableArrayLength, Array_length)                                        \
   V(ImmutableLinkedHashBase_getData, ImmutableLinkedHashBase_data)             \
   V(ImmutableLinkedHashBase_getIndex, ImmutableLinkedHashBase_index)           \
   V(LinkedHashBase_getData, LinkedHashBase_data)                               \
diff --git a/runtime/vm/compiler/graph_intrinsifier.cc b/runtime/vm/compiler/graph_intrinsifier.cc
index 5f6ec71..148a752 100644
--- a/runtime/vm/compiler/graph_intrinsifier.cc
+++ b/runtime/vm/compiler/graph_intrinsifier.cc
@@ -453,7 +453,6 @@
   }
 
 DEFINE_ARRAY_GETTER_INTRINSIC(ObjectArray)
-DEFINE_ARRAY_GETTER_INTRINSIC(ImmutableArray)
 
 #define DEFINE_ARRAY_GETTER_SETTER_INTRINSICS(enum_name)                       \
   DEFINE_ARRAY_GETTER_INTRINSIC(enum_name)                                     \
@@ -743,10 +742,6 @@
   return BuildLoadField(flow_graph, Slot::Array_length());
 }
 
-bool GraphIntrinsifier::Build_ImmutableArrayLength(FlowGraph* flow_graph) {
-  return BuildLoadField(flow_graph, Slot::Array_length());
-}
-
 bool GraphIntrinsifier::Build_GrowableArrayLength(FlowGraph* flow_graph) {
   return BuildLoadField(flow_graph, Slot::GrowableObjectArray_length());
 }
diff --git a/runtime/vm/compiler/method_recognizer.cc b/runtime/vm/compiler/method_recognizer.cc
index e14994c..cc5d4e2 100644
--- a/runtime/vm/compiler/method_recognizer.cc
+++ b/runtime/vm/compiler/method_recognizer.cc
@@ -94,9 +94,6 @@
 
 intptr_t MethodRecognizer::MethodKindToReceiverCid(Kind kind) {
   switch (kind) {
-    case kImmutableArrayGetIndexed:
-      return kImmutableArrayCid;
-
     case kObjectArrayGetIndexed:
     case kObjectArraySetIndexed:
     case kObjectArraySetIndexedUnchecked:
diff --git a/runtime/vm/compiler/recognized_methods_list.h b/runtime/vm/compiler/recognized_methods_list.h
index 5debd94..e8a7016 100644
--- a/runtime/vm/compiler/recognized_methods_list.h
+++ b/runtime/vm/compiler/recognized_methods_list.h
@@ -357,11 +357,9 @@
   V(_Float64x2, +, Float64x2Add, 0x0a09dbd8)                                   \
 
 #define GRAPH_CORE_INTRINSICS_LIST(V)                                          \
-  V(_List, get:length, ObjectArrayLength, 0x5850f06b)                          \
-  V(_List, [], ObjectArrayGetIndexed, 0x57b029cf)                              \
+  V(_Array, get:length, ObjectArrayLength, 0x5850f06b)                         \
+  V(_Array, [], ObjectArrayGetIndexed, 0x57b029cf)                             \
   V(_List, _setIndexed, ObjectArraySetIndexedUnchecked, 0x02f293ae)            \
-  V(_ImmutableList, get:length, ImmutableArrayLength, 0x5850f06b)              \
-  V(_ImmutableList, [], ImmutableArrayGetIndexed, 0x57b029cf)                  \
   V(_GrowableList, get:length, GrowableArrayLength, 0x5850f06b)                \
   V(_GrowableList, get:_capacity, GrowableArrayCapacity, 0x7d9f9bf2)           \
   V(_GrowableList, _setData, GrowableArraySetData, 0xbdda401b)                 \
diff --git a/runtime/vm/dart.cc b/runtime/vm/dart.cc
index ad53435..b2fd4b3 100644
--- a/runtime/vm/dart.cc
+++ b/runtime/vm/dart.cc
@@ -484,6 +484,8 @@
   Isolate::SetShutdownCallback(params->shutdown_isolate);
   Isolate::SetCleanupCallback(params->cleanup_isolate);
   Isolate::SetGroupCleanupCallback(params->cleanup_group);
+  Isolate::SetRegisterKernelBlobCallback(params->register_kernel_blob);
+  Isolate::SetUnregisterKernelBlobCallback(params->unregister_kernel_blob);
 
 #ifndef PRODUCT
   const bool support_service = true;
diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc
index a48a622..46145f4 100644
--- a/runtime/vm/isolate.cc
+++ b/runtime/vm/isolate.cc
@@ -1785,6 +1785,8 @@
   shutdown_callback_ = nullptr;
   cleanup_callback_ = nullptr;
   cleanup_group_callback_ = nullptr;
+  register_kernel_blob_callback_ = nullptr;
+  unregister_kernel_blob_callback_ = nullptr;
   if (isolate_creation_monitor_ == nullptr) {
     isolate_creation_monitor_ = new Monitor();
   }
@@ -2707,6 +2709,10 @@
 Dart_IsolateShutdownCallback Isolate::shutdown_callback_ = nullptr;
 Dart_IsolateCleanupCallback Isolate::cleanup_callback_ = nullptr;
 Dart_IsolateGroupCleanupCallback Isolate::cleanup_group_callback_ = nullptr;
+Dart_RegisterKernelBlobCallback Isolate::register_kernel_blob_callback_ =
+    nullptr;
+Dart_UnregisterKernelBlobCallback Isolate::unregister_kernel_blob_callback_ =
+    nullptr;
 
 Random* IsolateGroup::isolate_group_random_ = nullptr;
 Monitor* Isolate::isolate_creation_monitor_ = nullptr;
diff --git a/runtime/vm/isolate.h b/runtime/vm/isolate.h
index 39e320c..7665ac1 100644
--- a/runtime/vm/isolate.h
+++ b/runtime/vm/isolate.h
@@ -1230,6 +1230,20 @@
   static Dart_IsolateGroupCleanupCallback GroupCleanupCallback() {
     return cleanup_group_callback_;
   }
+  static void SetRegisterKernelBlobCallback(
+      Dart_RegisterKernelBlobCallback cb) {
+    register_kernel_blob_callback_ = cb;
+  }
+  static Dart_RegisterKernelBlobCallback RegisterKernelBlobCallback() {
+    return register_kernel_blob_callback_;
+  }
+  static void SetUnregisterKernelBlobCallback(
+      Dart_UnregisterKernelBlobCallback cb) {
+    unregister_kernel_blob_callback_ = cb;
+  }
+  static Dart_UnregisterKernelBlobCallback UnregisterKernelBlobCallback() {
+    return unregister_kernel_blob_callback_;
+  }
 
 #if !defined(PRODUCT)
   ObjectIdRing* object_id_ring() const { return object_id_ring_; }
@@ -1680,6 +1694,8 @@
   static Dart_IsolateShutdownCallback shutdown_callback_;
   static Dart_IsolateCleanupCallback cleanup_callback_;
   static Dart_IsolateGroupCleanupCallback cleanup_group_callback_;
+  static Dart_RegisterKernelBlobCallback register_kernel_blob_callback_;
+  static Dart_UnregisterKernelBlobCallback unregister_kernel_blob_callback_;
 
 #if !defined(PRODUCT)
   static void WakePauseEventHandler(Dart_Isolate isolate);
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index 867dd32..4cef3d4 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -26,6 +26,7 @@
   dart_stripped_binary = "dart"
   dart_precompiled_runtime_stripped_binary = "dart_precompiled_runtime_product"
   gen_snapshot_stripped_binary = "gen_snapshot_product"
+  analyze_snapshot_binary = "analyze_snapshot_product"
 }
 
 # The directory layout of the SDK is as follows:
@@ -321,6 +322,15 @@
   ]
 }
 
+copy("copy_analyze_snapshot") {
+  visibility = [ ":group_dart2native" ]
+  deps = [ "../runtime/bin:analyze_snapshot_product" ]
+  src_dir =
+      get_label_info("../runtime/bin:analyze_snapshot_product", "root_out_dir")
+  sources = [ "$src_dir/${analyze_snapshot_binary}${executable_suffix}" ]
+  outputs = [ "$root_out_dir/$dart_sdk_output/bin/utils/analyze_snapshot${executable_suffix}" ]
+}
+
 copy("copy_vm_platform_strong_product") {
   visibility = [ ":group_dart2native" ]
   deps = [ "../runtime/vm:vm_platform_product" ]
@@ -340,6 +350,7 @@
 
 group("group_dart2native") {
   deps = [
+    ":copy_analyze_snapshot",
     ":copy_dartaotruntime",
     ":copy_gen_kernel_snapshot",
     ":copy_gen_snapshot",
diff --git a/sdk/lib/_internal/vm/lib/array.dart b/sdk/lib/_internal/vm/lib/array.dart
index ba48fbe..be6f0dd 100644
--- a/sdk/lib/_internal/vm/lib/array.dart
+++ b/sdk/lib/_internal/vm/lib/array.dart
@@ -4,8 +4,81 @@
 
 // part of "core_patch.dart";
 
+abstract class _Array<E> extends FixedLengthListBase<E> {
+  @pragma("vm:recognized", "graph-intrinsic")
+  @pragma("vm:external-name", "List_getIndexed")
+  external E operator [](int index);
+
+  @pragma("vm:recognized", "graph-intrinsic")
+  @pragma("vm:exact-result-type", "dart:core#_Smi")
+  @pragma("vm:prefer-inline")
+  @pragma("vm:external-name", "List_getLength")
+  external int get length;
+
+  @pragma("vm:prefer-inline")
+  _List _slice(int start, int count, bool needsTypeArgument) {
+    if (count <= 64) {
+      final result = needsTypeArgument ? new _List<E>(count) : new _List(count);
+      for (int i = 0; i < result.length; i++) {
+        result[i] = this[start + i];
+      }
+      return result;
+    } else {
+      return _sliceInternal(start, count, needsTypeArgument);
+    }
+  }
+
+  @pragma("vm:external-name", "List_slice")
+  external _List _sliceInternal(int start, int count, bool needsTypeArgument);
+
+  // Iterable interface.
+
+  @pragma("vm:prefer-inline")
+  void forEach(f(E element)) {
+    final length = this.length;
+    for (int i = 0; i < length; i++) {
+      f(this[i]);
+    }
+  }
+
+  @pragma("vm:prefer-inline")
+  Iterator<E> get iterator {
+    return new _ArrayIterator<E>(this);
+  }
+
+  E get first {
+    if (length > 0) return this[0];
+    throw IterableElementError.noElement();
+  }
+
+  E get last {
+    if (length > 0) return this[length - 1];
+    throw IterableElementError.noElement();
+  }
+
+  E get single {
+    if (length == 1) return this[0];
+    if (length == 0) throw IterableElementError.noElement();
+    throw IterableElementError.tooMany();
+  }
+
+  List<E> toList({bool growable: true}) {
+    var length = this.length;
+    if (length > 0) {
+      _List result = _slice(0, length, !growable);
+      if (growable) {
+        return new _GrowableList<E>._withData(result).._setLength(length);
+      }
+      return unsafeCast<_List<E>>(result);
+    }
+    // _GrowableList._withData must not be called with empty list.
+    return growable ? <E>[] : new _List<E>(0);
+  }
+}
+
+// Known to the VM as kArrayCid.
 @pragma("vm:entry-point")
-class _List<E> extends FixedLengthListBase<E> {
+class _List<E> extends _Array<E> {
   @pragma("vm:recognized", "other")
   @pragma("vm:exact-result-type",
       <dynamic>[_List, "result-type-uses-passed-type-arguments"])
@@ -46,11 +119,8 @@
     if (elements is _GrowableList) {
       return _List._ofGrowableList(unsafeCast(elements));
     }
-    if (elements is _List) {
-      return _List._ofList(unsafeCast(elements));
-    }
-    if (elements is _ImmutableList) {
-      return _List._ofImmutableList(unsafeCast(elements));
+    if (elements is _Array) {
+      return _List._ofArray(unsafeCast(elements));
     }
     if (elements is EfficientLengthIterable) {
       return _List._ofEfficientLengthIterable(unsafeCast(elements));
@@ -70,19 +140,7 @@
     return list;
   }
 
-  factory _List._ofList(_List<E> elements) {
-    final int length = elements.length;
-    final list = _List<E>(length);
-    // TODO(30102): Remove this loop zero-trip guard.
-    if (length > 0) {
-      for (int i = 0; i < length; i++) {
-        list[i] = elements[i];
-      }
-    }
-    return list;
-  }
-
-  factory _List._ofImmutableList(_ImmutableList<E> elements) {
+  factory _List._ofArray(_Array<E> elements) {
     final int length = elements.length;
     final list = _List<E>(length);
     // TODO(30102): Remove this loop zero-trip guard.
@@ -116,10 +174,6 @@
     return unsafeCast(makeListFixedLength(_GrowableList<E>._ofOther(elements)));
   }
 
-  @pragma("vm:recognized", "graph-intrinsic")
-  @pragma("vm:external-name", "List_getIndexed")
-  external E operator [](int index);
-
   @pragma("vm:recognized", "other")
   void operator []=(int index, E value) {
     _setIndexed(index, value);
@@ -129,28 +183,6 @@
   @pragma("vm:external-name", "List_setIndexed")
   external void _setIndexed(int index, E value);
 
-  @pragma("vm:recognized", "graph-intrinsic")
-  @pragma("vm:exact-result-type", "dart:core#_Smi")
-  @pragma("vm:prefer-inline")
-  @pragma("vm:external-name", "List_getLength")
-  external int get length;
-
-  @pragma("vm:prefer-inline")
-  _List _slice(int start, int count, bool needsTypeArgument) {
-    if (count <= 64) {
-      final result = needsTypeArgument ? new _List<E>(count) : new _List(count);
-      for (int i = 0; i < result.length; i++) {
-        result[i] = this[start + i];
-      }
-      return result;
-    } else {
-      return _sliceInternal(start, count, needsTypeArgument);
-    }
-  }
-
-  @pragma("vm:external-name", "List_slice")
-  external _List _sliceInternal(int start, int count, bool needsTypeArgument);
-
   // List interface.
   void setRange(int start, int end, Iterable<E> iterable, [int skipCount = 0]) {
     if (start < 0 || start > this.length) {
@@ -214,61 +246,11 @@
     result._setLength(length);
     return result;
   }
-
-  // Iterable interface.
-
-  @pragma("vm:prefer-inline")
-  void forEach(f(E element)) {
-    final length = this.length;
-    for (int i = 0; i < length; i++) {
-      f(this[i]);
-    }
-  }
-
-  @pragma("vm:prefer-inline")
-  Iterator<E> get iterator {
-    return new _FixedSizeArrayIterator<E>(this);
-  }
-
-  E get first {
-    if (length > 0) return this[0];
-    throw IterableElementError.noElement();
-  }
-
-  E get last {
-    if (length > 0) return this[length - 1];
-    throw IterableElementError.noElement();
-  }
-
-  E get single {
-    if (length == 1) return this[0];
-    if (length == 0) throw IterableElementError.noElement();
-    throw IterableElementError.tooMany();
-  }
-
-  List<E> toList({bool growable: true}) {
-    var length = this.length;
-    if (length > 0) {
-      _List result = _slice(0, length, !growable);
-      if (growable) {
-        return new _GrowableList<E>._withData(result).._setLength(length);
-      }
-      return unsafeCast<_List<E>>(result);
-    }
-    // _GrowableList._withData must not be called with empty list.
-    return growable ? <E>[] : new _List<E>(0);
-  }
 }
 
-// This is essentially the same class as _List, but it does not
-// permit any modification of array elements from Dart code. We use
-// this class for arrays constructed from Dart array literals.
-// TODO(hausner): We should consider the trade-offs between two
-// classes (and inline cache misses) versus a field in the native
-// implementation (checks when modifying). We should keep watching
-// the inline cache misses.
+// Known to the VM as kImmutableArrayCid.
 @pragma("vm:entry-point")
-class _ImmutableList<E> extends UnmodifiableListBase<E> {
+class _ImmutableList<E> extends _Array<E> with UnmodifiableListMixin<E> {
   factory _ImmutableList._uninstantiable() {
     throw new UnsupportedError(
         "ImmutableArray can only be allocated by the VM");
@@ -276,95 +258,19 @@
 
   @pragma("vm:external-name", "ImmutableList_from")
   external factory _ImmutableList._from(List from, int offset, int length);
-
-  @pragma("vm:recognized", "graph-intrinsic")
-  @pragma("vm:external-name", "List_getIndexed")
-  external E operator [](int index);
-
-  @pragma("vm:recognized", "graph-intrinsic")
-  @pragma("vm:exact-result-type", "dart:core#_Smi")
-  @pragma("vm:prefer-inline")
-  @pragma("vm:external-name", "List_getLength")
-  external int get length;
-
-  List<E> sublist(int start, [int? end]) {
-    final int actualEnd = RangeError.checkValidRange(start, end, this.length);
-    int length = actualEnd - start;
-    if (length == 0) return <E>[];
-    final list = new _List(length);
-    for (int i = 0; i < length; i++) {
-      list[i] = this[start + i];
-    }
-    final result = new _GrowableList<E>._withData(list);
-    result._setLength(length);
-    return result;
-  }
-
-  // Collection interface.
-
-  @pragma("vm:prefer-inline")
-  void forEach(f(E element)) {
-    final length = this.length;
-    for (int i = 0; i < length; i++) {
-      f(this[i]);
-    }
-  }
-
-  @pragma("vm:prefer-inline")
-  Iterator<E> get iterator {
-    return new _FixedSizeArrayIterator<E>(this);
-  }
-
-  E get first {
-    if (length > 0) return this[0];
-    throw IterableElementError.noElement();
-  }
-
-  E get last {
-    if (length > 0) return this[length - 1];
-    throw IterableElementError.noElement();
-  }
-
-  E get single {
-    if (length == 1) return this[0];
-    if (length == 0) throw IterableElementError.noElement();
-    throw IterableElementError.tooMany();
-  }
-
-  List<E> toList({bool growable: true}) {
-    final int length = this.length;
-    if (length > 0) {
-      if (growable) {
-        final list = new _List(length);
-        for (int i = 0; i < length; i++) {
-          list[i] = this[i];
-        }
-        return _GrowableList<E>._withData(list).._setLength(length);
-      } else {
-        final list = new _List<E>(length);
-        for (int i = 0; i < length; i++) {
-          list[i] = this[i];
-        }
-        return list;
-      }
-    }
-    return growable ? <E>[] : new _List<E>(0);
-  }
 }
 
-// Iterator for arrays with fixed size.
-class _FixedSizeArrayIterator<E> implements Iterator<E> {
-  final List<E> _array;
+// Iterator for arrays.
+class _ArrayIterator<E> implements Iterator<E> {
+  final _Array<E> _array;
   final int _length; // Cache array length for faster access.
   int _index;
   E? _current;
 
-  _FixedSizeArrayIterator(List<E> array)
+  _ArrayIterator(_Array<E> array)
       : _array = array,
         _length = array.length,
-        _index = 0 {
-    assert(array is _List<E> || array is _ImmutableList<E>);
-  }
+        _index = 0 {}
 
   E get current => _current as E;
 
diff --git a/sdk/lib/_internal/vm/lib/core_patch.dart b/sdk/lib/_internal/vm/lib/core_patch.dart
index 9beb4dd..78b3bab 100644
--- a/sdk/lib/_internal/vm/lib/core_patch.dart
+++ b/sdk/lib/_internal/vm/lib/core_patch.dart
@@ -23,7 +23,7 @@
         Lists,
         POWERS_OF_TEN,
         SubListIterable,
-        UnmodifiableListBase,
+        UnmodifiableListMixin,
         has63BitSmis,
         makeFixedListUnmodifiable,
         makeListFixedLength,
diff --git a/sdk/lib/_internal/vm/lib/growable_array.dart b/sdk/lib/_internal/vm/lib/growable_array.dart
index 2c47725..4644c30 100644
--- a/sdk/lib/_internal/vm/lib/growable_array.dart
+++ b/sdk/lib/_internal/vm/lib/growable_array.dart
@@ -143,11 +143,8 @@
     if (elements is _GrowableList) {
       return _GrowableList._ofGrowableList(unsafeCast(elements));
     }
-    if (elements is _List) {
-      return _GrowableList._ofList(unsafeCast(elements));
-    }
-    if (elements is _ImmutableList) {
-      return _GrowableList._ofImmutableList(unsafeCast(elements));
+    if (elements is _Array) {
+      return _GrowableList._ofArray(unsafeCast(elements));
     }
     if (elements is EfficientLengthIterable) {
       return _GrowableList._ofEfficientLengthIterable(unsafeCast(elements));
@@ -155,7 +152,7 @@
     return _GrowableList._ofOther(elements);
   }
 
-  factory _GrowableList._ofList(_List<T> elements) {
+  factory _GrowableList._ofArray(_Array<T> elements) {
     final int length = elements.length;
     if (length > 0) {
       final data = _List(_adjustedCapacity(length));
@@ -183,20 +180,6 @@
     return _GrowableList<T>.empty();
   }
 
-  factory _GrowableList._ofImmutableList(_ImmutableList<T> elements) {
-    final int length = elements.length;
-    if (length > 0) {
-      final data = _List(_adjustedCapacity(length));
-      for (int i = 0; i < length; i++) {
-        data[i] = elements[i];
-      }
-      final list = _GrowableList<T>._withData(data);
-      list._setLength(length);
-      return list;
-    }
-    return _GrowableList<T>.empty();
-  }
-
   factory _GrowableList._ofEfficientLengthIterable(
       EfficientLengthIterable<T> elements) {
     final int length = elements.length;
diff --git a/sdk/lib/_internal/vm/lib/isolate_patch.dart b/sdk/lib/_internal/vm/lib/isolate_patch.dart
index 6e3aabf..34df646 100644
--- a/sdk/lib/_internal/vm/lib/isolate_patch.dart
+++ b/sdk/lib/_internal/vm/lib/isolate_patch.dart
@@ -652,6 +652,31 @@
   static Never exit([SendPort? finalMessagePort, Object? message]) {
     _exit(finalMessagePort, message);
   }
+
+  /**
+   * Creates an Uri representing the script which was compiled into kernel
+   * binary in [kernelBlob].
+   * The resulting Uri can be used for the subsequent spawnUri calls.
+   * Such spawnUri will start an isolate which would run the given
+   * compiled script in [kernelBlob].
+   */
+  /*static*/ Uri createUriForKernelBlob(Uint8List kernelBlob) {
+    return Uri.parse(_registerKernelBlob(kernelBlob));
+  }
+
+  /**
+   * Unregisters kernel blob previously registered with
+   * [createUriForKernelBlob] and frees underlying resources.
+   */
+  /*static*/ void unregisterKernelBlobUri(Uri kernelBlobUri) {
+    _unregisterKernelBlob(kernelBlobUri.toString());
+  }
+
+  @pragma("vm:external-name", "Isolate_registerKernelBlob")
+  external static String _registerKernelBlob(Uint8List kernelBlob);
+
+  @pragma("vm:external-name", "Isolate_unregisterKernelBlob")
+  external static void _unregisterKernelBlob(String kernelBlobUri);
 }
 
 @patch
diff --git a/sdk/lib/developer/timeline.dart b/sdk/lib/developer/timeline.dart
index 783f21a..9dccd22 100644
--- a/sdk/lib/developer/timeline.dart
+++ b/sdk/lib/developer/timeline.dart
@@ -109,13 +109,7 @@
       _stack.add(null);
       return;
     }
-    var block = new _SyncBlock._(name);
-    if (arguments != null) {
-      block._arguments = arguments;
-    }
-    if (flow != null) {
-      block.flow = flow;
-    }
+    var block = new _SyncBlock._(name, arguments: arguments, flow: flow);
     _stack.add(block);
     block._startSync();
   }
@@ -125,7 +119,7 @@
     if (!_hasTimeline) {
       return;
     }
-    if (_stack.length == 0) {
+    if (_stack.isEmpty) {
       throw new StateError('Uneven calls to startSync and finishSync');
     }
     // Pop top item off of stack.
@@ -340,32 +334,31 @@
 
   /// An (optional) set of arguments which will be serialized to JSON and
   /// associated with this block.
-  Map? _arguments;
+  final Map? arguments;
 
   /// An (optional) flow event associated with this block.
-  Flow? _flow;
+  final Flow? flow;
 
-  _SyncBlock._(this.name);
+  late final String _jsonArguments = _argumentsAsJson(arguments);
+
+  _SyncBlock._(this.name, {this.arguments, this.flow});
 
   /// Start this block of time.
   void _startSync() {
-    _reportTaskEvent(0, 'B', category, name, _argumentsAsJson(_arguments));
+    _reportTaskEvent(0, 'B', category, name, _jsonArguments);
   }
 
   /// Finish this block of time. At this point, this block can no longer be
   /// used.
   void finish() {
     // Report event to runtime.
-    _reportTaskEvent(0, 'E', category, name, _argumentsAsJson(_arguments));
-    if (_flow != null) {
-      _reportFlowEvent(category, "${_flow!.id}", _flow!._type, _flow!.id,
+    _reportTaskEvent(0, 'E', category, name, _jsonArguments);
+    final Flow? tempFlow = flow;
+    if (tempFlow != null) {
+      _reportFlowEvent(category, "${tempFlow.id}", tempFlow._type, tempFlow.id,
           _argumentsAsJson(null));
     }
   }
-
-  void set flow(Flow f) {
-    _flow = f;
-  }
 }
 
 String _argumentsAsJson(Map? arguments) {
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart
index 98fe3f6..516fa1f 100644
--- a/sdk/lib/html/dart2js/html_dart2js.dart
+++ b/sdk/lib/html/dart2js/html_dart2js.dart
@@ -34088,8 +34088,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathEvaluator
-@deprecated // experimental
 @Native("XPathEvaluator")
 class XPathEvaluator extends JavaScriptObject {
   // To suppress missing implicit constructor warnings.
@@ -34116,8 +34114,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathExpression
-@deprecated // experimental
 @Native("XPathExpression")
 class XPathExpression extends JavaScriptObject {
   // To suppress missing implicit constructor warnings.
@@ -34131,8 +34127,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathNSResolver
-@deprecated // experimental
 @Native("XPathNSResolver")
 class XPathNSResolver extends JavaScriptObject {
   // To suppress missing implicit constructor warnings.
@@ -34147,8 +34141,6 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-// http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathResult
-@deprecated // experimental
 @Native("XPathResult")
 class XPathResult extends JavaScriptObject {
   // To suppress missing implicit constructor warnings.
diff --git a/sdk/lib/io/platform.dart b/sdk/lib/io/platform.dart
index 93bcbd4..b302b4a 100644
--- a/sdk/lib/io/platform.dart
+++ b/sdk/lib/io/platform.dart
@@ -168,8 +168,10 @@
   static Map<String, String> get environment => _Platform.environment;
 
   /// The path of the executable used to run the script in this isolate.
+  /// Usually `dart` when running on the Dart VM or the
+  /// compiled script name (`script_name.exe`).
   ///
-  /// The literal path used to identify the script.
+  /// The literal path used to identify the executable.
   /// This path might be relative or just be a name from which the executable
   /// was found by searching the system path.
   ///
@@ -181,6 +183,8 @@
   ///
   /// This is the absolute path, with all symlinks resolved, to the
   /// executable used to run the script.
+  ///
+  /// See [executable] for the unresolved version.
   static String get resolvedExecutable => _Platform.resolvedExecutable;
 
   /// The absolute URI of the script being run in this isolate.
@@ -194,6 +198,12 @@
   /// example, a symbolic link immediately followed by '..' will not be
   /// looked up.
   ///
+  /// If a compiled Dart script is being executed the URI to the compiled
+  /// script is returned, for example, `file:///full/path/to/script_name.exe`.
+  ///
+  /// If running on the Dart VM the URI to the running Dart script is returned,
+  /// for example, `file:///full/path/to/script_name.dart`.
+  ///
   /// If the executable environment does not support [script],
   /// the URI is empty.
   static Uri get script => _Platform.script;
diff --git a/tests/language/enum/enhanced_enums_error_test.dart b/tests/language/enum/enhanced_enums_error_test.dart
index 8ea51fe..e812324 100644
--- a/tests/language/enum/enhanced_enums_error_test.dart
+++ b/tests/language/enum/enhanced_enums_error_test.dart
@@ -344,22 +344,22 @@
   const ConflictConstructorNameStatic.foo();
   //    ^
   // [cfe] Conflicts with member 'foo'.
-  // [analyzer] unspecified
+  //                                  ^^^
+  // [analyzer] COMPILE_TIME_ERROR.CONFLICTING_CONSTRUCTOR_AND_STATIC_MEMBER
   static int get foo => 42;
   //             ^^^
-  // [analyzer] unspecified
   // [cfe] Conflicts with constructor 'ConflictConstructorNameStatic.foo'.
 }
 
 enum ConflictConstructorNameStaticEnumValue {
   e1.e1();
 //^^
-// [analyzer] unspecified
 // [cfe] Conflicts with constructor 'ConflictConstructorNameStaticEnumValue.e1'.
   const ConflictConstructorNameStaticEnumValue.e1();
   //    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  // [analyzer] unspecified
   // [cfe] Conflicts with member 'e1'.
+  //                                           ^^
+  // [analyzer] COMPILE_TIME_ERROR.CONFLICTING_CONSTRUCTOR_AND_STATIC_MEMBER
 }
 
 // "It is an error if a member has the same name as its enclosing class"
@@ -586,14 +586,14 @@
 enum InheritsValues with ValuesGetter {
   // ^^^^^^^^^^^^^^
   // [cfe] Can't declare a member that conflicts with an inherited one.
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_ENUM_VALUES_INHERITANCE
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_ENUM_VALUES
   e1;
 }
 
 enum ImplementsValues implements ValuesGetter {
   // ^^^^^^^^^^^^^^^^
   // [cfe] Can't declare a member that conflicts with an inherited one.
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_ENUM_VALUES_INHERITANCE
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_ENUM_VALUES
   e1;
 
   noSuchMethod(i) => 42;
@@ -603,7 +603,7 @@
   e1;
   int get index => 42;
   //      ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER_DECLARATION
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER
   // [cfe] unspecified
 }
 
@@ -641,7 +641,7 @@
 
   Never get index => throw "Never!";
   //        ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER_DECLARATION
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER
   // [cfe] unspecified
 }
 
@@ -661,11 +661,11 @@
   e1(e2),
 //^
 // [cfe] Constant evaluation error:
-//   ^^
-// [analyzer] COMPILE_TIME_ERROR.CONST_WITH_NON_CONSTANT_ARGUMENT
+//^^
+// [analyzer] COMPILE_TIME_ERROR.RECURSIVE_COMPILE_TIME_CONSTANT
   e2(e1);
-  // ^^
-  // [analyzer] COMPILE_TIME_ERROR.CONST_WITH_NON_CONSTANT_ARGUMENT
+//^^
+// [analyzer] COMPILE_TIME_ERROR.RECURSIVE_COMPILE_TIME_CONSTANT
   final CyclicReference other;
   const CyclicReference(this.other);
 }
@@ -676,8 +676,8 @@
 //   ^
 // [cfe] Constant evaluation error:
   e1(values);
-  // ^^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.CONST_WITH_NON_CONSTANT_ARGUMENT
+//^^
+// [analyzer] COMPILE_TIME_ERROR.RECURSIVE_COMPILE_TIME_CONSTANT
   final List<CyclicReferenceValues> list;
   const CyclicReferenceValues(this.list);
 }
diff --git a/tests/language/enum/enhanced_enums_subtype_error_test.dart b/tests/language/enum/enhanced_enums_subtype_error_test.dart
index 83236b8..11bfb20 100644
--- a/tests/language/enum/enhanced_enums_subtype_error_test.dart
+++ b/tests/language/enum/enhanced_enums_subtype_error_test.dart
@@ -21,7 +21,7 @@
   //  ^
   // [cfe] Non-abstract class 'NonAbstract' has 'Enum' as a superinterface.
   //                         ^^^^
-  // [analyzer] COMPILE_TIME_ERROR.SUBTYPE_OF_DISALLOWED_TYPE
+  // [analyzer] COMPILE_TIME_ERROR.CONCRETE_CLASS_HAS_ENUM_SUPERINTERFACE
 
   int get index => 42;
 }
@@ -30,56 +30,56 @@
 abstract class AbstractImplementsWithValues implements Enum {
   int get values => 42;
   //      ^^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_ENUM_VALUES_DECLARATION
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_ENUM_VALUES
   // [cfe] 'AbstractImplementsWithValues' has 'Enum' as a superinterface and can't contain non-static member with name 'values'.
 }
 
 abstract class AbstractExtendsWithValues extends Enum {
   int get values => 42;
   //      ^^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_ENUM_VALUES_DECLARATION
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_ENUM_VALUES
   // [cfe] 'AbstractExtendsWithValues' has 'Enum' as a superinterface and can't contain non-static member with name 'values'.
 }
 
 abstract class AbstractImplementsWithIndex implements Enum {
   int get index => 42;
   //      ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER_DECLARATION
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER
   // [cfe] unspecified
 }
 
 abstract class AbstractExtendsWithIndex extends Enum {
   int get index => 42;
   //      ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER_DECLARATION
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER
   // [cfe] unspecified
 }
 
 mixin MixinWithIndex on Enum {
   int get index => 42;
   //      ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER_DECLARATION
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER
   // [cfe] unspecified
 }
 
 mixin MixinWithIndex2 implements Enum {
   int get index => 42;
   //      ^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER_DECLARATION
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER
   // [cfe] unspecified
 }
 
 mixin MixinWithValues on Enum {
   int get values => 42;
   //      ^^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_ENUM_VALUES_DECLARATION
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_ENUM_VALUES
   // [cfe] 'MixinWithValues' has 'Enum' as a superinterface and can't contain non-static member with name 'values'.
 }
 
 mixin MixinWithValues2 implements Enum {
   int get values => 42;
   //      ^^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_ENUM_VALUES_DECLARATION
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_ENUM_VALUES
   // [cfe] 'MixinWithValues2' has 'Enum' as a superinterface and can't contain non-static member with name 'values'.
 }
 
@@ -87,7 +87,7 @@
 abstract class ClassWithEquals implements Enum {
   bool operator ==(Object other) => true;
   //            ^^
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER_DECLARATION
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER
   //      ^^^^^^^^
   // [cfe] unspecified
 }
@@ -95,7 +95,7 @@
 mixin MixinWithEquals implements Enum {
   bool operator ==(Object other) => true;
   //            ^^
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER_DECLARATION
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER
   //      ^^^^^^^^
   // [cfe] unspecified
 }
@@ -103,14 +103,14 @@
 abstract class ClassWithHashCode implements Enum {
   int get hashCode => 0;
   //      ^^^^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER_DECLARATION
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER
   // [cfe] unspecified
 }
 
 mixin MixinWithHashCode implements Enum {
   int get hashCode => 0;
   //      ^^^^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER_DECLARATION
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER
   // [cfe] unspecified
 }
 
@@ -125,13 +125,13 @@
 // Can't implement `Enum` and inherit concrete hashCode/==.
 abstract class ClassSuperEquals extends SuperclassWithEquals implements Enum {
   //           ^^^^^^^^^^^^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER_INHERITANCE
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER
   // [cfe] unspecified
 }
 
 abstract class ClassSuperHash extends SuperclassWithHashCode implements Enum {
   //           ^^^^^^^^^^^^^^
-  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER_INHERITANCE
+  // [analyzer] COMPILE_TIME_ERROR.ILLEGAL_CONCRETE_ENUM_MEMBER
   // [cfe] unspecified
 }
 
diff --git a/tests/web/48442_test.dart b/tests/web/48442_test.dart
new file mode 100644
index 0000000..2ba0349
--- /dev/null
+++ b/tests/web/48442_test.dart
@@ -0,0 +1,35 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Test for issue #48442. We can do eager initialization of static variables
+// with initializers containing map literals only when the we know the keys have
+// implementations of `get:hashCode` known to be free of side-effects and
+// without dependencies on other static variables that may not yet exist.
+
+import 'package:expect/expect.dart';
+
+String witness = 'none';
+
+class Foo {
+  const Foo();
+  int get hashCode {
+    witness = 'hashCode';
+    return Object.hash(0, 1);
+  }
+
+  bool operator ==(other) => other is Foo;
+}
+
+const key = Foo();
+
+// This map creation calls Foo.hashCode. In #48442, `map` was initialized
+// eagerly, which crashed in `Object.hash` due to an uninitialized `_hashSeed`
+// variable in the runtime.
+final map = {key: "value"};
+
+void main() {
+  Expect.equals('none', witness);
+  print(map);
+  Expect.equals('hashCode', witness);
+}
diff --git a/tests/web_2/48442_test.dart b/tests/web_2/48442_test.dart
new file mode 100644
index 0000000..2ba0349
--- /dev/null
+++ b/tests/web_2/48442_test.dart
@@ -0,0 +1,35 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// Test for issue #48442. We can do eager initialization of static variables
+// with initializers containing map literals only when the we know the keys have
+// implementations of `get:hashCode` known to be free of side-effects and
+// without dependencies on other static variables that may not yet exist.
+
+import 'package:expect/expect.dart';
+
+String witness = 'none';
+
+class Foo {
+  const Foo();
+  int get hashCode {
+    witness = 'hashCode';
+    return Object.hash(0, 1);
+  }
+
+  bool operator ==(other) => other is Foo;
+}
+
+const key = Foo();
+
+// This map creation calls Foo.hashCode. In #48442, `map` was initialized
+// eagerly, which crashed in `Object.hash` due to an uninitialized `_hashSeed`
+// variable in the runtime.
+final map = {key: "value"};
+
+void main() {
+  Expect.equals('none', witness);
+  print(map);
+  Expect.equals('hashCode', witness);
+}
diff --git a/tools/VERSION b/tools/VERSION
index 6242ae8..6171306 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 17
 PATCH 0
-PRERELEASE 141
+PRERELEASE 142
 PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/dom/dom.json b/tools/dom/dom.json
index 7b6f549..ebd5826 100644
--- a/tools/dom/dom.json
+++ b/tools/dom/dom.json
@@ -31472,18 +31472,16 @@
   },
   "XPathEvaluator": {
     "comment": "http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathEvaluator",
-    "dart_action": "suppress",
     "members": {
       "XPathEvaluator": {},
       "createExpression": {},
       "createNSResolver": {},
       "evaluate": {}
     },
-    "support_level": "experimental"
+    "support_level": "untriaged"
   },
   "XPathException": {
     "comment": "http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathException",
-    "dart_action": "suppress",
     "members": {
       "INVALID_EXPRESSION_ERR": {},
       "TYPE_ERR": {},
@@ -31496,27 +31494,24 @@
       },
       "toString": {}
     },
-    "support_level": "experimental"
+    "support_level": "untriaged"
   },
   "XPathExpression": {
     "comment": "http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathExpression",
-    "dart_action": "suppress",
     "members": {
       "evaluate": {}
     },
-    "support_level": "experimental"
+    "support_level": "untriaged"
   },
   "XPathNSResolver": {
     "comment": "http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathNSResolver",
-    "dart_action": "suppress",
     "members": {
       "lookupNamespaceURI": {}
     },
-    "support_level": "experimental"
+    "support_level": "untriaged"
   },
   "XPathResult": {
     "comment": "http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathResult",
-    "dart_action": "suppress",
     "members": {
       "ANY_TYPE": {},
       "ANY_UNORDERED_NODE_TYPE": {},
@@ -31538,7 +31533,7 @@
       "snapshotLength": {},
       "stringValue": {}
     },
-    "support_level": "experimental"
+    "support_level": "untriaged"
   },
   "XSLTProcessor": {
     "dart_action": "suppress",
diff --git a/tools/gn.py b/tools/gn.py
index b895393..373fa60 100755
--- a/tools/gn.py
+++ b/tools/gn.py
@@ -282,6 +282,8 @@
             'exe.stripped/dart_precompiled_runtime_product')
         gn_args['gen_snapshot_stripped_binary'] = (
             'exe.stripped/gen_snapshot_product')
+        gn_args['analyze_snapshot_binary'] = (
+            'exe.stripped/analyze_snapshot_product')
 
     # Setup the user-defined sysroot.
     if UseSysroot(args, gn_args):
