Version 2.17.0-142.0.dev

Merge commit 'b1af9288ea5ce89d5a630d286f29a51f1802c15e' into 'dev'
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):